匹配正则表达式(不区分大小写)
返回每个子字符串的起始索引startIndex
= regexpi (str
,表达式
)str
这与正则表达式指定的字符模式匹配,而不考虑字母案例。如果没有匹配,startIndex
为空数组。
[
返回所有匹配项的起始和结束索引。startIndex
,endIndex
] = regexpi(str
,表达式
)
___= regexpi (___,'forcecelloutpul')
将每个输出参数返回为标量单元格。单元格包含描述为先前语法的输出的数字阵列或子字符串。您可以包含任何输入,并请求前面语法的任何输出。
找到开头的单词c
,结束t
,其中包含一个或多个元音。
str =蝙蝠猫可以汽车大衣法院切割ct cat扫描;表达=“c(五个母音字母)+ t”;startIndex = regexpi (str,表达)
startIndex =.1×45 17 28 35
值startIndex
表示与正则表达式匹配的每个单词的第一个字符的索引。
正则表达式“c(五个母音字母)+ t”
指定此模式:
c
必须是第一个字符。
c
必须后跟括号内的一个字符,(五个母音字母)
.
用括号括起来的模式必须出现一次或多次,如+
操作员。
t
必须是最后一个字符,在括号模式和t
.
匹配字母案例在表达式的全部或部分。
默认情况下,regexpi
执行不区分大小写的匹配。
str ='字符向量,具有大写和小写的文本。;表达=“\ w *案”;matchstr = regexpi(str,表达式,'比赛')
matchStr =1x2单元格阵列{'大写小写'}
使用正则表达式
函数的语法与regexpi
执行区分大小写的匹配。
matchWithRegexp = regexp (str,表达式,'比赛')
matchWithRegexp =1x1细胞阵列{'小写'}
禁用区分大小写的匹配正则表达式
,可以使用“ignorecase”
选择。
matchWithIgnorecase = regexp (str,表达式,'比赛',“ignorecase”)
matchWithIgnorecase =1x2单元格阵列{'大写小写'}
对于多个表达式,使能和禁用所选表达式的不区分大小写匹配(我)?
和(?-一世)
搜索的旗帜。
表达= {“(? -我)\ w *案”;......'(?i)\ w *案例'};matchstr = regexp(str,表达式,'比赛');CellDisp(匹配)
matchStr{1}{1} =小写matchStr{2}{1} =大写matchStr{2}{2} =小写
str
- - - - - -输入文本输入文本,指定为字符向量、字符向量单元格数组或字符串数组。单元格数组中的每个字符向量或字符串数组中的每个字符串都可以是任意长度并包含任意字符。
如果str
和表达式
是字符串数组或单元格数组,它们必须具有相同的维数。
数据类型:细绳
|char
|细胞
表达式
- - - - - -正则表达式正则表达式,指定为字符向量、字符向量的单元格数组或字符串数组。每个表达式可以包含指定要匹配的模式的字符、元字符、操作符、标记和标志str
.
下表描述了正则表达式的元素。
元字符
元字符代表字母,字母范围,数字和空格字符。使用它们来构造一个广义的字符模式。
元字符 |
描述 |
例子 |
---|---|---|
|
任何单个字符,包括空白 |
|
|
方括号内包含的任何字符。以下字符按字面意思处理: |
|
|
方括号内不包含的任何字符。以下字符按字面意思处理: |
|
|
范围内的任何角色 |
|
|
任何字母,数字或下划线字符。对于英语字符集, |
|
|
任何不是字母,数字或下划线的字符。对于英语字符集, |
|
|
任何空白字符;相当于 |
|
|
任何非空白字符;相当于 |
|
|
任何数字数字;相当于 |
|
|
任何数字字符;相当于 |
|
|
八万价值的特征 |
|
|
十六进制值的特征 |
|
字符表示
操作员 |
描述 |
---|---|
|
警报(哔哔) |
|
退格 |
|
换页 |
|
新行 |
|
回车 |
|
水平标签 |
|
垂直标签 |
|
任何在正则表达式中具有特殊含义的字符,您希望按字面意义匹配(例如,use |
量词
限定符指定模式在匹配文本中必须出现的次数。
量词 |
匹配表达式时,它发生… |
例子 |
---|---|---|
|
连续0次或更多次。 |
|
|
0乘以1乘以。 |
|
|
连续1次或更多。 |
|
|
至少
|
|
|
至少
|
|
|
完全 相当于 |
|
量词可以以三种方式出现,如下表所示。问表示上表中的任何量词。
模式 |
描述 |
例子 |
||||
---|---|---|---|---|---|---|
|
贪婪的表达:匹配尽可能多的字符。 |
考虑到文本
|
||||
|
懒惰的表达式:必要时匹配很少的字符。 |
考虑到文本
|
分组运营商
分组操作符允许您捕获令牌、将一个操作符应用于多个元素或在特定组中禁用回溯。
分组操作符 |
描述 |
例子 |
---|---|---|
|
对表达式和捕获标记的元素进行分组。 |
|
|
组,但不捕获令牌。 |
没有分组, |
|
组自动。不要在组内回溯以完成匹配,也不要捕获令牌。 |
|
|
匹配表达式 如果有匹配 你可以包括 |
|
锚
表达式中的锚与输入文本或单词的开头或结尾匹配。
锚 |
匹配…… |
例子 |
---|---|---|
|
输入文本的开头。 |
|
|
输入文本的结尾。 |
|
|
单词的开头。 |
|
|
一个词的结尾。 |
|
看看断言
LOOPAROMUND断言查找立即在预期匹配之前或遵循预期匹配的模式,但不是匹配的一部分。
指针保留在当前位置,并且对应的字符测试
表达未被捕获或丢弃。因此,看法断言可以匹配重叠的字符组。
PookAround断言 |
描述 |
例子 |
---|---|---|
|
向前查找匹配的字符 |
|
|
展望不匹配的人物 |
|
|
查找匹配的字符 |
|
|
查找不匹配的字符 |
|
如果您指定了一个看法断言前表达式,操作相当于逻辑和
.
手术 |
描述 |
例子 |
---|---|---|
|
匹配两者 |
|
|
匹配 |
|
逻辑和条件运算符
逻辑运算符和条件运算符允许您测试给定条件的状态,然后使用结果来确定下一个匹配的模式(如果有的话)。这些操作符支持逻辑的金宝app或者
,如果
或如果别的
条件。
条件可以是令牌,高度操作员或表格的动态表达式(? @cmd)
.动态表达式必须返回逻辑或数值。
条件运营商 |
描述 |
例子 |
---|---|---|
|
匹配表达式 如果有匹配 |
|
|
如果条件 |
|
|
如果条件 |
|
令牌运营商
令牌是通过将正则表达式的一部分括在括号中定义的匹配文本的一部分。您可以通过标记在文本中的顺序(序数标记)引用标记,或者为标记分配名称,以便于代码维护和输出可读。
序数牌运营商 |
描述 |
例子 |
---|---|---|
|
在标记中捕获与括起来的表达式匹配的字符。 |
|
|
匹配 |
|
|
如果 |
|
命名为令牌运营商 |
描述 |
例子 |
---|---|---|
|
捕获以命名令牌匹配匹配的表达式的字符。 |
|
|
匹配引用的令牌 |
|
|
如果找到指定的令牌,则进行匹配 |
|
如果表达式已嵌套括号,Matlab®捕获与最外层圆括号集对应的标记。例如,给定搜索模式'(和(y | rew))'
, MATLAB创建令牌'安德鲁'
但不是“y”
或'rew'
.
动态的正则表达式
动态表达式允许您执行MATLAB命令或正则表达式来确定要匹配的文本。
动态表达式的括号不是创建捕获组。
操作员 |
描述 |
例子 |
---|---|---|
|
解析 解析后, |
|
|
执行表示的MATLAB命令 |
|
|
执行表示的MATLAB命令 |
|
在动态表达式中,使用以下运算符定义替换文本。
替换操作符 |
描述 |
---|---|
|
当前匹配的输入文本的一部分 |
|
当前匹配之前的输入文本的一部分 |
|
当前匹配的输入文本的部分(使用 |
|
|
|
命名为令牌 |
|
当MATLAB执行命令时返回的输出, |
评论
人物 |
描述 |
例子 |
---|---|---|
(? #评论) |
在正则表达式中插入注释。当匹配输入时,注释文本被忽略。 |
|
搜索的旗帜
搜索标志修改匹配表达式的行为。在表达式中使用搜索标志的替代方案是通过选项
输入参数。
国旗 |
描述 |
---|---|
(?-一世) |
匹配信箱(默认为 |
(我)? |
不匹配字母大小写(默认为 |
(?) |
匹配点( |
(? - s) |
用非换行符的任何字符匹配模式中的点。 |
(?-M) |
匹配 |
(?) |
匹配 |
(? - x) |
包括匹配时的空格字符和注释(默认值)。 |
(?X) |
匹配时忽略空格字符和注释。使用 |
标志修改的表达式可以出现在括号后面,例如
(?我)\ w *
或在括号内,用冒号与标志分开(:
), 如
(?我:\ w *)
后一种语法允许您更改较大表达式的部分行为。
数据类型:char
|细胞
|细绳
outkey
- - - - - -关键字,指示要返回哪个输出'开始'
(默认)|“结束”
|“tokenExtents”
|'比赛'
|“令牌”
|“名字”
|“分裂”
指示要返回的输出的关键字,指定为以下字符向量之一。
输出关键字 |
返回 |
---|---|
|
所有匹配的开始索引, |
|
所有比赛的结束指数, |
|
所有标记的开始和结束索引 |
|
中匹配模式的每个子字符串的文本 |
|
每个捕获的令牌的文本 |
|
每个命名令牌的名称和文本 |
|
非匹配子串的文本 |
数据类型:char
|细绳
选项
- - - - - -搜索选项“一次”
|“警告”
|“matchcase”
|“emptymatch”
|'dotexcepewline'
|'lineanchors'
|……搜索选项,指定为字符向量。选项是成对出现的:一个选项对应于默认行为,另一个选项允许覆盖默认行为。从一对中只指定一个选项。选项可以以任何顺序出现。
默认的 |
覆盖 |
描述 |
---|---|---|
|
|
尽可能多地匹配表达式(默认),或者只匹配一次。 |
|
|
抑制警告(默认),或显示它们。 |
|
|
忽略字母大小写(默认)或匹配大小写。 |
|
|
忽略零长度匹配(默认)或包含它们。 |
|
|
用任何字符(默认)匹配点,或除了换行符( |
|
|
应用 |
|
|
包括匹配时的空格字符和注释(默认),或忽略它们。和 |
数据类型:char
出去
- 有关匹配的信息关于匹配的信息,以数字、单元格、字符串或结构数组的形式返回。输出中的信息取决于您指定的值outkey
,如下所示。
输出关键字 |
输出描述 |
输出类型和尺寸 |
---|---|---|
|
匹配的起始索引 |
对彼此而言 |
|
匹配结束索引 |
|
|
所有标记的开始和结束索引 |
默认情况下,返回所有匹配项时:
当您指定时 如果在特定索引处预期令牌 |
|
中匹配模式的每个子字符串的文本 |
默认情况下,返回所有匹配项时:
当您指定时 |
|
每个捕获的令牌的文本 |
默认情况下,返回所有匹配项时:
当您指定时 如果在特定的索引处期望一个令牌,但是没有找到,那么MATLAB将为该令牌返回一个空值, |
|
每个命名令牌的名称和文本 |
对于所有匹配项:
|
|
非匹配子串的文本 |
对于所有匹配项:
|
令牌是匹配文本的一部分,对应于正则表达式的一部分。要创建标记,请将正则表达式的一部分括在括号中。
例如,该表达式查找表单的日期dd-mmm-yyyy
,包括日、月、年的代币。
str =“这里是日期:2020年4月01日”;表达='(\ d +) - (\ w +) - (\ d +)';替换= regexp (str,表达式,“令牌”);我的约会{:}
ans = '01' ' 4月' '2020'
您可以将名称与令牌相关联,以便更容易识别:
str =“这里是日期:2020年4月01日”;表达=“(? <天> \ d +) -(? <月> \ w +) -(? <年> \ d +) ';替换= regexp (str,表达式,“名字”)
mydate = day: '01' month: 'Apr' year: '2020'
有关更多信息,请参阅正则表达式的令牌.
你点击一个链接对应于这个MATLAB命令:
在MATLAB命令窗口中输入它来运行命令。Web浏览器不支持MATLAB命令。金宝app
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。