regexpPattern
匹配指定正则表达式的模式
描述
例子
组合模式和正则表达式
使用regexpPattern
使用可以用作文本搜索函数输入的正则表达式指定模式。
寻找以……开头的单词c
,以…结束t
,中间包含一个或多个元音。
txt ="蝙蝠猫能车大衣法庭CUT ct cat scan";表达=“c(五个母音字母)+ t”;
正则表达式“c(五个母音字母)+ t”
指定此模式:
c
必须是第一个字符。c
必须跟在括号内的一个字符后面,(五个母音字母)
.括号内的模式必须出现一次或多次,如
+
操作符。t
必须是最后一个字符,在括号模式和?之间没有字符t
.
提取模式。注意,这些词减少
而且猫
不匹配,因为它们是大写的。
pat = regexpppattern(表达式);提取(txt,帕特)
ans =2 x1字符串“猫”“外套”
使用regexpPattern
可以与其他模式函数组合,以创建更复杂的模式。使用whitespacePattern
而且lettersPattern
在正则表达式匹配之后创建一个也匹配单词的新模式,然后提取新模式。
pat = regexpppattern(表达式)+ whitespaceppattern + lettersppattern;提取(txt,帕特)
ans =2 x1字符串“猫能”“大衣法庭”
忽略换行符
字符
创建包含a的字符串换行符
的性格。使用正则表达式“。”
匹配任何字符,除了换行符
字符。
txt =“第一线”+换行符+“二线”
txt = "第一行第二行"
表达=“+”。;
正则表达式“+”。
匹配任意字符的一个或多个,包括换行符
字符。计算模式匹配的次数。
pat = regexpppattern(表达式);帕特计数(txt)
Ans = 1
创建一个新的正则表达式模式,但这次指定DotExceptNewline
作为真正的
所以图案不匹配换行符
字符。计算模式匹配的次数。
pat = regexpppattern(表达式,“DotExceptNewline”,真正的);帕特计数(txt)
Ans = 2
匹配时忽略表达式中的空格
创建三种
作为字符串。
txt =“Hello World”;
表达式”。*’
因为中间有空格,所以只能匹配单个字符.
而且*
.创建一个模式来匹配正则表达式”。*’
,然后提取模式。
表达=”。*’;pat = regexpppattern(表达式);提取(txt,帕特)
ans =10 x1字符串"H" "e" "l" "l" "o" "W" o" r" l" d"
创建一个新的正则表达式模式,但这次指定空闲空间
作为真正的
忽略正则表达式中的空格。提取新模式。
pat = regexpppattern(表达式,“freespace”,真正的);提取(txt,帕特)
ans =“你好,世界”
忽略带有正则表达式的大小写
寻找以……开头的单词c
,以…结束t
,并且无论大小写,中间都包含一个或多个元音。
txt ="蝙蝠猫能车大衣法庭CUT ct cat scan";表达=“c(五个母音字母)+ t”;
正则表达式“c(五个母音字母)+ t”
指定此模式:
c
必须是第一个字符。c
必须跟在括号内的一个字符后面,(五个母音字母)
.括号内的模式必须出现一次或多次,如
+
操作符。t
必须是最后一个字符,在括号模式和?之间没有字符t
.
提取模式。请注意,单词CUT和CAT不匹配,因为它们是大写的。
pat = regexpppattern(表达式);提取(txt,帕特)
ans =2 x1字符串“猫”“外套”
创建一个新的正则表达式模式,但这次指定IgnoreCase
作为真正的
忽略正则表达式中的大小写。提取新模式。
pat = regexpppattern(表达式,“IgnoreCase”,真正的);提取(txt,帕特)
ans =4 x1字符串"猫" "外套" "剪裁" "猫"
指定^
而且$
锚为行锚或文本锚
的元字符^
而且$
可用于指定行锚或文本锚。这种行为regexpPattern
参数指定的锚
选择。
创建三种
作为包含换行符
字符。
txt =“猫”+换行符+“蝙蝠”+换行符+“老鼠”;
正则表达式'^.+?美元的匹配one or more characters between two anchors. Create a pattern for this regular expression, and specify锚
作为“文本”
因此^和$锚被视为文本锚。提取模式。
表达=“^ + ?。美元的;pat = regexpppattern(表达式,“锚”,“文本”);提取(txt,帕特)
Ans = "猫、蝙蝠、老鼠"
创建一个新的正则表达式模式,但这次指定锚
作为“行”
因此^和$锚被视为行锚。提取新模式。
pat = regexpppattern(表达式,“锚”,“行”);提取(txt,帕特)
ans =3 x1字符串"猫" "蝙蝠" "老鼠"
输入参数
表达式
- - - - - -正则表达式
特征向量|字符向量的单元格数组|字符串数组
正则表达式,指定为字符向量、字符向量的单元格数组或字符串数组。每个表达式都可以包含指定要匹配的模式的字符、元字符、操作符、标记和标志str
.
下表描述了正则表达式的元素。
元字符
元字符表示字母、字母范围、数字和空格字符。用它们来构造一个字符的一般模式。
元字符 |
描述 |
例子 |
---|---|---|
|
任何单个字符,包括空格 |
|
|
任何包含在方括号内的字符。以下字符按字面意思处理: |
|
|
任何不在方括号内的字符。以下字符按字面意思处理: |
|
|
的范围内的任何字符 |
|
|
任何字母、数字或下划线字符。对于英文字符集, |
|
|
不是字母、数字或下划线的任何字符。对于英文字符集, |
|
|
任何空白字符;相当于 |
|
|
任何非空白字符;相当于 |
|
|
任何数字;相当于 |
|
|
任何非数字字符;相当于 |
|
|
八进制值的字符 |
|
|
十六进制值的字符 |
|
字符表示
操作符 |
描述 |
---|---|
|
报警(嘟) |
|
退格 |
|
换页 |
|
新行 |
|
回车 |
|
水平选项卡 |
|
垂直制表符 |
|
任何在正则表达式中具有特殊含义的字符,您希望逐字匹配(例如,使用 |
量词
限定符指定模式必须在匹配文本中出现的次数。expr
表示任何正则表达式。
量词 |
表达式出现的次数 |
例子 |
---|---|---|
|
连续0次或更多次。 |
|
|
0次或1次。 |
|
|
连续1次或以上。 |
|
|
至少
|
|
|
至少
|
|
|
完全 相当于 |
|
量词可以以三种模式出现,如下表所示。问表示上表中的任何量词。
模式 |
描述 |
例子 |
||||
---|---|---|---|---|---|---|
|
贪婪表达式:匹配尽可能多的字符。 |
给定文本
|
||||
|
惰性表达式:匹配尽可能少的字符。 |
给定文本
|
分组操作符
分组操作符允许您捕获令牌,将一个操作符应用于多个元素,或禁用特定组中的回溯。令牌是通过将正则表达式的一部分括在括号中定义的匹配文本的一部分。
分组操作符 |
描述 |
例子 |
---|---|---|
|
对表达式和捕获令牌的元素进行分组。 |
|
|
分组,但不捕获令牌。 |
没有分组, |
|
组自动。不要在组内回溯来完成匹配,也不要捕获令牌。 |
|
|
匹配表达式 如果有匹配 你可以包括 |
|
锚
表达式中的锚匹配输入文本或单词的开头或结尾。
锚 |
匹配…… |
例子 |
---|---|---|
|
输入文本的开始。 |
|
|
输入文本的结束。 |
|
|
一个单词的开头。 |
|
|
一个词的结尾。 |
|
看看断言
环顾断言查找直接在预期匹配之前或之后,但不是匹配的一部分的模式。
指针保持在当前位置,而与测验
表达式不会被捕获或丢弃。因此,前瞻断言可以匹配重叠的字符组。
看看断言 |
描述 |
例子 |
---|---|---|
|
提前寻找匹配的角色 |
|
|
提前寻找不匹配的字符 |
|
|
在后面寻找匹配的字符 |
|
|
寻找不匹配的字符 |
|
如果指定了前瞻断言之前一个表达式,其运算相当于一个逻辑和
.
操作 |
描述 |
例子 |
---|---|---|
|
匹配两个 |
|
|
匹配 |
|
逻辑和条件运算符
逻辑运算符和条件运算符使您能够测试给定条件的状态,然后使用结果确定接下来要匹配的模式(如果有的话)。这些操作符支持逻辑或
,如果
或如果/其他
条件。
条件可以是令牌、查找操作符或表单的动态表达式(? @cmd)
.动态表达式必须返回逻辑值或数值。
条件运算符 |
描述 |
例子 |
---|---|---|
|
匹配表达式 如果有匹配 |
|
|
如果条件 |
|
|
如果条件 |
|
令牌运营商
令牌是通过将正则表达式的一部分括在括号中定义的匹配文本的一部分。您可以通过标记在文本中的顺序(序数标记)来引用它,或者为标记指定名称,以便于代码维护和可读输出。
序数令牌运算符 |
描述 |
例子 |
---|---|---|
|
在令牌中捕获与所附表达式匹配的字符。 |
|
命名令牌运算符 |
描述 |
例子 |
---|---|---|
|
在命名令牌中捕获与所包含表达式匹配的字符。 |
|
请注意
如果表达式有嵌套的括号,MATLAB®捕获与最外层括号集合对应的标记。例如,给定搜索模式”(和(y |奖赏))”
, MATLAB创建一个令牌“安德鲁”
但不是为了“y”
或“报答”
.
评论
字符 |
描述 |
例子 |
---|---|---|
(? #评论) |
在正则表达式中插入注释。在匹配输入时,注释文本将被忽略。 |
|
搜索的旗帜
搜索标志修改匹配表达式的行为。在表达式中使用搜索标志的另一种替代方法是传递选项
输入参数。
国旗 |
描述 |
---|---|
(? -我) |
匹配字母大小写(默认为 |
(我)? |
不匹配字母大小写(默认为 |
(?) |
匹配点( |
(? - s) |
将模式中的点与任何非换行符的字符匹配。 |
(? - m) |
匹配 |
(?) |
匹配 |
(? - x) |
匹配时包含空格字符和注释(默认)。 |
x (?) |
匹配时忽略空格字符和注释。使用 |
标志修改的表达式可以出现在括号之后,例如
(?我)\ w *
或在括号内,用冒号(:
),例如
(?我:\ w *)
后一种语法允许您更改较大表达式部分的行为。
数据类型:字符
|细胞
|字符串
请注意
regexpPattern
不支持反向引用、基于反向引用的条件和动态正则表达式。
名称-值参数
指定可选参数对为Name1 = Value1,…,以=家
,在那里的名字
参数名称和价值
对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。
在R2021a之前,名称和值之间用逗号隔开,并括起来的名字
在报价。
例子:“DotExceptNewline”,的确,“freespace”,假的
DotExceptNewline
- - - - - -新线的点匹配
假
或0
(默认)|真正的
或1
点匹配换行符
字符,指定为逗号分隔的对,由“DotExceptNewline”
和一个逻辑标量。将该选项设置为0 (false)以省略换行符
字符点匹配。
例子:pat = regexpppattern ('m.','DotExceptNewline',true)
空闲空间
- - - - - -匹配留白
假
或0
(默认)|真正的
或1
匹配空白字符,指定为逗号分隔的对,由“freespace”
和一个逻辑标量。将该选项设置为1 (true),以便在匹配时省略空白字符和注释。
例子:pat = regexpppattern ('m.',' freespespaces ',false)
IgnoreCase
- - - - - -匹配时忽略大小写
假
或0
(默认)|真正的
或1
匹配时忽略大小写,指定为逗号分隔的对,由“IgnoreCase”
和一个逻辑标量。将该选项设置为1 (true)以匹配任何情况。
例子:pat = regexpppattern ('m.','IgnoreCase',true)
锚
- - - - - -元字符处理
“文本”
(默认)|“行”
元字符处理,指定为逗号分隔的对,由“锚”
其中一个价值观是:
价值 | 描述 |
---|---|
“文本” |
处理元字符^ 而且$ 作为文本锚。这将把正则表达式匹配锚定到文本的开头或结尾,这可能跨越多行。 |
“行” |
处理元字符^ 而且$ 作为线锚。这将把正则表达式匹配锚定到文本中的行首或行尾。当您有多行文本且不希望匹配跨越多行时,此选项非常有用。 |
例子:pat = regexpppattern ('\d+',' anchor ','line')
版本历史
在R2020b中引入
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。