正则表达式,指定为字符向量、字符向量元胞数组或字符串数组。每个表达式可包含字符、元字符、运算符、标文和用于指定在 str 中匹配的模式的标志。

下表描述了正则表达式的各元素。

元字符

元字符表示字母、字母范围、数字和空格字符。使用它们来构造广义的字符模式。

元字符说明示例.任何单个字符,包括空白'..ain' 与以 'ain' 结尾的五个连续字符序列匹配。

[c1c2c3]包含在方括号中的任意字符。下列字符将按字面意义进行处理:$ | . * + ? 和 -(不用于指示范围时)。'[rp.]ain' 与 'rain'、'pain' 或 '.ain' 匹配。

[^c1c2c3]未包含在方括号中的任意字符。下列字符将按字面意义进行处理:$ | . * + ? 和 -(不用于指示范围时)。'[^*rp]ain' 与以 'ain' 结尾的所有由四个字母组成的序列('rain'、'pain' 和 '*ain' 除外)匹配。例如,它与 'gain'、'lain' 或 'vain' 匹配。

[c1-c2]c1 到 c2 范围中的任意字符'[A-G]' 与 A 到 G 范围中的单个字符匹配。

\w任意字母、数字或下划线字符。对于英语字符集,\w 等同于 [a-zA-Z_0-9]'\w*' 识别由字母、数字或下划线字符组成的词。

\W字母、数字或下划线之外的任意字符。对于英语字符集,\W 等同于 [^a-zA-Z_0-9]'\W*' 标识不是由任意字母、数字或下划线字符组合而成的词。

\s任意空白字符;等同于 [

\f\n\r\t\v]'\w*n\s' 与以字母 n 结尾且后跟空白字符的单词匹配。

\S任意非空白字符;等同于 [^

\f\n\r\t\v]'\d\S' 与数字(后跟任意非空白字符)匹配。

\d任意数字;等同于 [0-9]'\d*' 与任意数量的连续数字匹配。

\D任意非数字字符;等同于 [^0-9]'\w*\D\>' 与不以数字结尾的单词匹配。

\oN 或 \o{N}八进制值 N 的字符'\o{40}' 与八进制 40 定义的空格字符匹配。

\xN 或 \x{N}十六进制值 N 的字符'\x2C' 与十六进制 2C 定义的逗号字符匹配。

字符表示

运算符说明\a警报(蜂鸣)

\b退格符

\f换页符

\n换行符

\r回车符

\t水平制表符

\v垂直制表符

\char正则表达式中您要从字面上匹配(例如,使用 \\ 匹配单个反斜杠)的具有特殊含义的任意字符。

限定符

限定符指定某个模式必须出现在匹配文本中的次数。

限定符表达式出现的次数示例expr*0 次或连续多次。'\w*' 与任意长度的单词匹配。

expr?0 次或 1 次。'\w*(\.m)?' 与单词或以扩展名 .m 结尾(此条件为可选条件)的单词匹配。

expr+1 次或连续多次。'' 与 HTML 标记匹配(当文件名包含一个或多个字符时)。

expr{m,n}至少 m 次,但不超过连续 n 次。

{0,1} 等效于 ?。'\S{4,8}' 与四到八个非空白字符匹配。

expr{m,}至少连续 m 次。

{0,} 和 {1,} 分别等效于 * 和 +。'' 与 HTML 标记匹配(当文件名包含一个或多个字符时)。

expr{n}恰好连续 n 次。

等效于 {n,n}。'\d{4}' 与四个连续数字匹配。

限定符可以以三种模式显示,如下表所述。q 表示上表中的任意限定符。

模式说明示例exprq积极表达式:与尽可能多的字符匹配。给定文本 '

text

',表达式 '?t.*>' 与介于 之间的所有字符匹配:

'

text

'

exprq?消极表达式:与所需的尽可能少的字符匹配。给定文本 '

text

',表达式 '?t.*?>' 在第一次出现右尖括号 (>) 时结束每个匹配项:

'

' '' ''

exprq+主动表达式:最大程度地匹配,但不重新扫描文本的任何部分。给定文本 '

text

',表达式 '?t.*+>' 不返回任何匹配项,这是因为右尖括号是使用 .* 捕获的且不进行重新扫描。

分组运算符

分组运算符允许您捕获标文,将一个运算符应用于多个元素或在特定组中禁止追溯。

分组运算符说明示例(expr)将表达式元素分组并捕获标文。'Joh?n\s(\w*)' 捕获一个标文,该标文包含名字为 John 或 Jon 的任何人的姓氏。

(?:expr)分组但不捕获标文。'(?:[aeiou][^aeiou]){2}' 与两个连续的元音后跟非元音(例如 'anon')的模式匹配。

不进行分组时,'[aeiou][^aeiou]{2}' 与元音后跟两个非元音匹配。

(?>expr)以原子方式分组。不在组中追溯以完成匹配,并且不捕获标文。'A(?>.*)Z' 与 'AtoZ' 不匹配,但 'A(?:.*)Z' 与其匹配。使用原子组时,Z 将使用 .* 进行捕获并且不进行重新扫描。

(expr1|expr2)匹配表达式 expr1 或表达式 expr2。

如果存在与 expr1 匹配的项,则将忽略 expr2。

您可以在左括号后包括 ?: 或 ?> 以禁用标文或以原子方式分组。'(let|tel)\w+' 匹配以 let 或 tel 开头的单词。

定位点

表达式中的定位点与文本或单词的开头或结尾匹配。

定位点与以下项匹配示例^expr输入文本的开头。'^M\w*' 与以 M 作为文本开头的单词匹配。

expr$输入文本的结尾。'\w*m$' 与以 m 作为文本结尾的单词匹配。

\

expr\>单词结尾。'\w*e\>' 与以 e 结尾的任何单词匹配。

环顾断言

环顾断言查找紧邻预期匹配项前后但并非该匹配项一部分的模式。

指针停留在当前位置,并且将放弃或不捕获对应于 test 表达式的字符。因此,前向断言可匹配重叠字符组。

环顾断言说明示例expr(?=test)向前查找与 test 匹配的字符。'\w*(?=ing)' 匹配后跟 ing 的词汇,例如输入文本 'Flying, not falling.' 中的 'Fly' 和 'fall'。

expr(?!test)向前查找与 test 不匹配的字符。'i(?!ng)' 匹配字母 i 的不后跟 ng 的实例。

(?<=test)expr向后查找与 test 匹配的字符。'(?<=re)\w*' 匹配紧跟 're' 的词汇,例如输入文本 'renew,

reuse, recycle' 中的 'new'、'use' 和 'cycle'

(?

如果您在表达式之前指定前向断言,则运算等同于逻辑 AND。

运算说明示例(?=test)expr同时与 test 和 expr 匹配。'(?=[a-z])[^aeiou]' 与辅音匹配。

(?!test)expr匹配 expr,但不匹配 test。'(?![aeiou])[a-z]' 与辅音匹配。

逻辑和条件运算符

逻辑和条件运算符允许您测试给定条件的状态,然后使用结果确定哪个模式(如果有)与下一条件匹配。这些运算符支持逻辑 OR、if 或 if/else 条件。

条件可以是标文、环顾运算符或 (?@cmd) 形式的动态表达式。动态表达式必须返回逻辑值或数值。

条件运算符说明示例expr1|expr2匹配表达式 expr1 或表达式 expr2。

如果存在与 expr1 匹配的项,则将忽略 expr2。'(let|tel)\w+' 匹配以 let 或 tel 开头的单词。

(?(cond)expr)如果条件 cond 为 true,则匹配 expr。'(?(?@ispc)[A-Z]:\\)' 匹配驱动器名称,例如 C:\(在 Windows® 系统上运行时)。

(?(cond)expr1|expr2)如果条件 cond 为 true,则匹配 expr1。否则,匹配 expr2。'Mr(s?)\..*?(?(1)her|his)

\w*' 匹配包含 her 的文本(当文本以 Mrs 开头时),或包含 his 的文本(当文本以 Mr 开头时)。

标文运算符

标文是您通过将正则表达式的部分括在括号中而定义的匹配文本的部分。您可以按标文在文本中的顺序引用该标文(顺序标文),或将名称分配给标文以便于代码维护和使输出更易于阅读。

顺序标文运算符说明示例(expr)在标文中捕获与括起来的表达式匹配的字符。'Joh?n\s(\w*)' 捕获一个标文,该标文包含名字为 John 或 Jon 的任何人的姓氏。

\N匹配第 N 个标文。'.*\1>' 从文本 '

Some text' 捕获 HTML 标记的标文,例如 'title'。

(?(N)expr1|expr2)如果找到第 N 个标文,则匹配 expr1。否则,匹配 expr2。'Mr(s?)\..*?(?(1)her|his)

\w*' 匹配包含 her 的文本(当文本以 Mrs 开头时),或包含 his 的文本(当文本以 Mr 开头时)。

命名标文运算符说明示例(?expr)在命名标文中捕获与括起来的表达式匹配的字符。'(?\d+)-(?\d+)-(?\d+)' 在 mm-dd-yy 形式的输入日期中创建命名月、日和年标文。

\k匹配 name 引用的标文。'\w+).*>.*\k>' 从文本 'Some text' 捕获 HTML 标记的标文,例如 'title'。

(?(name)expr1|expr2)如果找到命名标文,则匹配 expr1。否则,匹配 expr2。'Mr(?s?)\..*?(?(sex)her|his) \w*' 匹配包含 her 的文本(当文本以 Mrs 开头时),或包含 his 的文本(当文本以 Mr 开头时)。

注意

如果表达式具有嵌套括号,则 MATLAB® 捕获对应于最外层括号的标文。例如,给定搜索模式 '(and(y|rew))',MATLAB 将为 'andrew' 但不为 'y' 或 'rew' 创建一个标文。

动态正则表达式

动态表达式允许您执行 MATLAB 命令或正则表达式以确定要匹配的文本。

将动态表达式括起来的括号不创建捕获组。

运算符说明示例(??expr)解析 expr 并将得到的项包括在匹配表达式中。

解析后,expr 必须对应于完整的有效正则表达式。使用反斜杠转义字符 (\) 的动态表达式需要两个反斜杠:一个用于 expr 的初始解析,一个用于完整匹配。'^(\d+)((??\\w{$1}))' 通过读取匹配项开头的数字确定匹配的字符数。动态表达式括在另一组括号中,以便在标文中捕获生成的匹配项。例如,匹配 '5XXXXX' 将捕获 '5' 和 'XXXXX' 的标文。

(??@cmd)执行 cmd 表示的 MATLAB 命令,并将该命令返回的输出包括在匹配表达式中。'(.{2,}).?(??@fliplr($1))' 查找长度至少为四个字符的回文,例如 'abba'。

(?@cmd)执行 cmd 表示的 MATLAB 命令,但放弃该命令返回的任何输出。(对诊断正则表达式有帮助。)'\w*?(\w)(?@disp($1))\1\w*' 匹配包括双字母(例如 pp)的单词并显示中间结果。

在动态表达式中,使用下列运算符定义替代文本。

替代运算符说明$& 或 $0当前作为匹配项的输入文本部分

$`位于当前匹配项之前的输入文本部分

$'紧随当前匹配项的输入文本部分(使用 $'' 表示 $')

$N第 N 个标文

$命名标文

${cmd}在 MATLAB 执行命令 cmd 时返回的输出

注释

字符说明示例(?#comment)在正则表达式中插入注释。匹配输入时将忽略注释文本。'(?# Initial digit)\

搜索标志

搜索标志修改匹配表达式的行为。在表达式中使用搜索标志的替代方法是传递 option 输入参数。

标志说明(?-i)匹配字母大小写(regexp 和 regexprep 的默认值)。

(?i)不匹配字母大小写(regexpi 的默认值)。

(?s)将模式中的点 (.) 与任意字符匹配(默认值)。

(?-s)将模式中的点与并非换行符的任意字符匹配。

(?-m)匹配文本开头和结尾的 ^ 和 $ 元字符(默认值)。

(?m)匹配行开头和结尾的 ^ 和 $ 元字符。

(?-x)在匹配时包括空格字符和注释(默认值)。

(?x)在匹配时忽略空格字符和注释。使用 '\

' 和 '\#' 匹配空白和 # 字符。

该标志修改的表达式可显示在括号后,例如

(?i)\w*

或显示在括号内并使用冒号 (:) 与该标志分隔开,例如

(?i:\w*)

后面的语法允许您更改较大表达式的一部分的行为。

数据类型:char | cell | string

matlab 匹配屏幕大小写,匹配正则表达式(不区分大小写)相关推荐

  1. python模糊匹配忽略大小写_正则表达式忽略大小写匹配,但保留特定大小写的结果...

    我正在寻找解决此问题的有效方法 假设我们要在忽略大小写的情况下查找字符串中的单词列表,但是与其存储匹配的字符串,我们不希望使用与原始列表具有相同大小写的字符串. 例如 : words_to_match ...

  2. C#正则表达式的完全匹配、部分匹配及忽略大小写的问题

    原文:C#正则表达式的完全匹配.部分匹配及忽略大小写的问题 问题的提出 根据用户给定表达式,里面含有各种数学函数,如求绝对值,三角函数,平方.开方等,分别以类似ABS(表达式),Sin(表达式),AS ...

  3. 匹配字符串-好技能-正则表达式

    1. 正则表达式规则 1.1 普通字符 字母.数字.汉字.下划线.以及后边章节中没有特殊定义的标点符号,都是"普通字符".表达式中的普通字符,在匹配一个字符串的时候,匹配与之相同的 ...

  4. mysql正则表达式匹配非_MySQL的正则表达式

    1.  Mysql的正则表达式仅仅使SQL语言的一个子集,可以匹配基本的字符.字符串. 例如:select * from wp_posts where post_name REGEXP 'hello' ...

  5. 【超详总结/理解:正则表达式】特点/元字符/正则表达式中的标志位-flag/RegExp/重复操作与后向引用/匹配模式/表达邮箱/正则表达式对象的方法/利用正则表达式限制网页表单里的文本框输入内容

    文章目录 正则表达式: 正则表达式的用途 正则表达式的组成-元字符 正则表达式的特点 正则表达式中的标志位-flag JavaScript中的正则表达式解析 RegExp 定义 RegExp RegE ...

  6. 正则表达式 python 没有则不匹配_python中关于正则表达式二

    2.2 反向引用 \1, \2... 表达式在匹配时,表达式引擎会将小括号 "( )" 包含的表达式所匹配到的字符串记录下来.在获取匹配结果的时候,小括号包含的表达式所匹配到的字符 ...

  7. php 正则匹配反向引用,php正则表达式子模式的反向引用学习笔记

    需要用正则表达式获取字符串的标题.标题标签是h1~h6. 使用正则表达式:"@(.*?)@"或者'(.*?)@'.使用了@作为分隔符,注意单双引号的差别\\1与\1. 例1 代码如 ...

  8. python re 匹配多行_Python正则表达式,看这一篇就够了

    作者 | 猪哥 来源 | 裸睡的猪(ID: IT--Pig) 大多数编程语言的正则表达式设计都师从Perl,所以语法基本相似,不同的是每种语言都有自己的函数去支持正则,今天我们就来学习 Python中 ...

  9. python 正则表达式匹配的位置_python正则表达式匹配 模式匹配

    Python正则式的基本用法 初学Python,对Python的文字处理能力有很深的印象,除了str对象自带的一些方法外,就是正则表达式这个强大的模块了.但是对于初学者来说,要用好这个功能还是有点难度 ...

最新文章

  1. 如何阅读JAVA 字节码(一)
  2. Linux distributions —— 可安全安装套件,Linux发布商套件
  3. 和smi_nvidia-smi 报错:无法与 nvidia driver 通信
  4. 2019安恒七月月赛——MISC
  5. 漫谈C++:良好的编程习惯与编程要点
  6. 开源不止,前进不息:2018 OpenInfra Days China来了!
  7. 漫画: 可以给女朋友讲解 Linux 内核长啥样了
  8. 自定义控件使用InnerDefaultProperty提示“内不允许包含文字内容”
  9. stm32增量式光电编码器
  10. gcc CFLAGS中调试和优化标志
  11. 如何学习Android系统源码
  12. 微信小程序(翻译小助手)项目实战
  13. 计算机系军训口号四句霸气,军训口号四句霸气一班
  14. 第二节 单个正态总体参数的假设检验
  15. 无线ap的ntp服务器,怎么配置cisco路由器的NTP
  16. Email - Boss's concerns
  17. 浅析STM32H7 FDCAN(二)
  18. html各种弹出框和提示框
  19. 直接插入排序 希尔排序 冒泡排序 快速排序 直接选择排序 堆排序 归并排序 基数排序的算法分析和具体实现 ...
  20. ubuntu20.04下载安装有道词典

热门文章

  1. rtx3090ti什么水平 rtx3090ti显卡什么级别 rtx3090ti显卡怎么样
  2. 微信小程序时间选择器
  3. 微信小程序修改顶部通知栏字体颜色,手机电量时间.....。
  4. windows已经阻止此应用 如何解决(非专业版系统)
  5. 09|自研or借力(下):集成Gin替换已有核心
  6. 【U盘主控芯片的优缺点】
  7. 他们竟用后台数据偷窥喜欢的女性!
  8. Android进阶2之有道词典开发
  9. UML中各种线条关系记忆技巧
  10. 项目管理之软件版本号