主要内容

regexpPattern

匹配指定正则表达式的模式

描述

例子

帕特= regexpPattern (表达式创建与正则表达式匹配的模式。

例子

帕特= regexpPattern (表达式名称,值使用一个或多个名称-值对参数指定其他选项。例如,您可以指定“IgnoreCase”作为真正的在匹配时忽略大小写。

例子

全部折叠

使用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

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

元字符

元字符表示字母、字母范围、数字和空格字符。用它们来构造一个字符的一般模式。

元字符

描述

例子

任何单个字符,包括空格

“……是”匹配以。结尾的五个连续字符的序列“是”

[c1c2c3.

任何包含在方括号内的字符。以下字符按字面意思处理:$ |。* + ?而且-当不用于表示范围时。

“(rp)是”匹配“雨”“痛苦”“.ain”

[c ^1c2c3.

任何不在方括号内的字符。以下字符按字面意思处理:$ |。* + ?而且-当不用于表示范围时。

“[^ * rp]还”匹配所有以。结尾的四字母序列“是”,除了“雨”而且“痛苦”而且‘*是‘.例如,它匹配“获得”“躺”,或“虚空”

[c1- c2

的范围内的任何字符c1通过c2

“[g]”匹配范围中的单个字符一个通过G

\ w

任何字母、数字或下划线字符。对于英文字符集,\ w等于(a-zA-Z_0-9)

“\ w *”标识由字母、数字或下划线字符的任何分组组成的单词。

\ W

不是字母、数字或下划线的任何字符。对于英文字符集,\ W等于[^ a-zA-Z_0-9]

“\ W *”标识一个不是由字母、数字或下划线字符的任何组组成的词。

\ s

任何空白字符;相当于[v \ f t \ n \ r \ \]

' \ w * n \ s '匹配以字母结尾的单词ngydF4y2Ba,后面跟着一个空白字符。

\ S

任何非空白字符;相当于[^ \ v f t \ n \ r \ \]

' \ d \ S '匹配后跟任何非空白字符的数字。

\ d

任何数字;相当于[0 - 9]

“\ d *”匹配任意数量的连续数字。

\ D

任何非数字字符;相当于(^ 0 - 9)

“\ w * \ D \ >”匹配不以数字结尾的单词。

上的\阿\ {N}

八进制值的字符N

“\ o{40}”匹配由八进制定义的空格字符40

\ xNx \ {N}

十六进制值的字符N

“\ x2C”匹配由十六进制定义的逗号字符2摄氏度

字符表示

操作符

描述

、一个

报警(嘟)

\ b

退格

\ f

换页

\ n

新行

r \

回车

\ t

水平选项卡

v \

垂直制表符

字符

任何在正则表达式中具有特殊含义的字符,您希望逐字匹配(例如,使用\ \匹配一个反斜杠)

量词

限定符指定模式必须在匹配文本中出现的次数。expr表示任何正则表达式。

量词

表达式出现的次数

例子

expr *

连续0次或更多次。

“\ w *”匹配任意长度的单词。

expr吗?

0次或1次。

“\ w * (\ . m) ?”匹配以扩展名结尾的可选单词00

expr +

连续1次或以上。

' < img src = " \ w + \ . gif”>“匹配一个< img >当文件名包含一个或多个字符时,使用HTML标记。

expr {m, n}

至少次数多,但不会超过ngydF4y2Ba*连续。

{0,1}等于吗?

\年代{4 8}匹配4到8个非空白字符。

expr {m,}

至少*连续。

{0}而且{1,}相当于而且+,分别。

' < a href = " {1,} \ \ w . html”>“匹配一个<一>当文件名包含一个或多个字符时,使用HTML标记。

expr {n}

完全ngydF4y2Ba*连续。

相当于{n, n}

“\ d{4}”匹配四个连续的数字。

量词可以以三种模式出现,如下表所示。表示上表中的任何量词。

' ''

模式

描述

例子

expr

贪婪表达式:匹配尽可能多的字符。

给定文本' < tr > < td > < p >文本< / p > < / td >”,表达式“* > < / ? t。”匹配之间的所有字符< tr而且/ td >

' < tr > < td > < p >文本< / p > < / td >”

expr吗?

惰性表达式:匹配尽可能少的字符。

给定文本' < tr > < td > < p >文本< / p > < / td >”,表达式' < / t。* ?>”结束每一个匹配在第一个出现的右尖括号(>):

'
' '

expr+

所有格表达式:尽可能多地匹配,但不要重新扫描文本的任何部分。

给定文本' < tr > < td > < p >文本< / p > < / td >”,表达式“* + > < / ? t。”不返回任何匹配项,因为右尖括号使用. *,不进行重新扫描。

分组操作符

分组操作符允许您捕获令牌,将一个操作符应用于多个元素,或禁用特定组中的回溯。令牌是通过将正则表达式的一部分括在括号中定义的匹配文本的一部分。

分组操作符

描述

例子

(expr)

对表达式和捕获令牌的元素进行分组。

“乔? n \年代(\ w *)捕获一个标记,该标记包含任何有名字的人的姓约翰乔恩

(?: expr)

分组,但不捕获令牌。

”(?:[五个母音字母][^五个母音字母)){2}”匹配一个元音后接一个非元音的两个连续模式,例如“立刻”

没有分组,“[五个母音字母][^五个母音字母){2}”匹配一个元音后面跟两个非元音。

(? > expr)

组自动。不要在组内回溯来完成匹配,也不要捕获令牌。

“(? >。*)Z”不匹配“AtoZ”,虽然“Z(?: *)。”所做的事。使用原子团,Z使用. *并没有重新扫描。

(expr1 | expr2)

匹配表达式expr1或表达expr2

如果有匹配expr1,然后expr2将被忽略。

你可以包括吗?? >后,以抑制标记或原子分组。

“(让|电话)\ w +”匹配包含但不以with结尾的单词电话

表达式中的锚匹配输入文本或单词的开头或结尾。

匹配……

例子

^ expr

输入文本的开始。

“^ M \ w *”匹配以开头的单词在课文的开头。

expr美元

输入文本的结束。

“\ w * m美元”匹配以在文本的最后。

\ < expr

一个单词的开头。

“\ < n \ w *”匹配以。开头的任何单词ngydF4y2Ba

expr \ >

一个词的结尾。

“\ w * e \ >”匹配任何以。结尾的单词e

看看断言

环顾断言查找直接在预期匹配之前或之后,但不是匹配的一部分的模式。

指针保持在当前位置,而与测验表达式不会被捕获或丢弃。因此,前瞻断言可以匹配重叠的字符组。

看看断言

描述

例子

expr (?=测验

提前寻找匹配的角色测验

“\ w * (? = ing)”匹配后面的项荷兰国际集团(ing),例如“飞”而且“秋天”在输入文本中“飞翔,而不是坠落。”

expr (? !)测验

提前寻找不匹配的字符测验

“我(? ! ng)”匹配该字母的实例后面没有ng

(?< =测验) expr

在后面寻找匹配的字符测验

(? < = re) \ w *’匹配下面的术语“重新”,例如“新”“使用”,“循环”在输入文本中“更新、再利用、循环利用”

(? < !测验) expr

寻找不匹配的字符测验

“(? < ! \ d) (\ d) (? ! \ d)”匹配个位数(不在其他数字前面或后面的数字)。

如果指定了前瞻断言之前一个表达式,其运算相当于一个逻辑

操作

描述

例子

(?=测验) expr

匹配两个测验而且expr

(? = [a - z])[^五个母音字母)”辅音相匹配。

(? !)测验) expr

匹配expr不匹配测验

”(? ![五个母音字母])[a - z]”辅音相匹配。

逻辑和条件运算符

逻辑运算符和条件运算符使您能够测试给定条件的状态,然后使用结果确定接下来要匹配的模式(如果有的话)。这些操作符支持逻辑,如果如果/其他条件。

条件可以是令牌、查找操作符或表单的动态表达式(? @cmd).动态表达式必须返回逻辑值或数值。

条件运算符

描述

例子

expr1 | expr2

匹配表达式expr1或表达expr2

如果有匹配expr1,然后expr2将被忽略。

“(让|电话)\ w +”匹配以开头的单词电话

(?(电导率)expr)

如果条件气孔导度真正的,然后匹配expr

”(? ? @ispc) [a - z]: \ \)”匹配驱动器名称,例如C: \,当在Windows上运行时®系统。

(?(电导率)expr1 | expr2)

如果条件气孔导度真正的,然后匹配expr1.否则,匹配expr2

先生(年代 ?)\..*?(?( 1)她|他)\ w *’匹配包含她的当课文开始时夫人,或包括他的当课文开始时先生

令牌运营商

令牌是通过将正则表达式的一部分括在括号中定义的匹配文本的一部分。您可以通过标记在文本中的顺序(序数标记)来引用它,或者为标记指定名称,以便于代码维护和可读输出。

序数令牌运算符

描述

例子

(expr)

在令牌中捕获与所附表达式匹配的字符。

“乔? n \年代(\ w *)捕获一个标记,该标记包含任何有名字的人的姓约翰乔恩

命名令牌运算符

描述

例子

(? <名称> expr)

在命名令牌中捕获与所包含表达式匹配的字符。

‘(? <月> \ d +) -(? <天> \ d +) -(? <年> \ d +)”在表单的输入日期中为月、日和年创建命名令牌mm-dd-yy

请注意

如果表达式有嵌套的括号,MATLAB®捕获与最外层括号集合对应的标记。例如,给定搜索模式”(和(y |奖赏))”, MATLAB创建一个令牌“安德鲁”但不是为了“y”“报答”

评论

字符

描述

例子

(? #评论)

在正则表达式中插入注释。在匹配输入时,注释文本将被忽略。

‘(?#Initial digit)\<\d\w+'包括注释,并匹配以数字开头的单词。

搜索的旗帜

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

国旗

描述

(? -我)

匹配字母大小写(默认为正则表达式而且regexprep).

(我)?

不匹配字母大小写(默认为regexpi).

(?)

匹配点()在模式中使用任何字符(默认)。

(? - s)

将模式中的点与任何非换行符的字符匹配。

(? - m)

匹配而且文本开头和结尾的元字符(默认)。

(?)

匹配而且行首和行尾的元字符。

(? - x)

匹配时包含空格字符和注释(默认)。

x (?)

匹配时忽略空格字符和注释。使用“\”而且“\ #”为了匹配空间和字符。

标志修改的表达式可以出现在括号之后,例如

(?我)\ w *

或在括号内,用冒号(),例如

(?我:\ w *)

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

数据类型:字符|细胞|字符串

请注意

regexpPattern不支持反向引用、基于反向引用的条件和动态正则表达式。

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。

在R2021a之前,名称和值之间用逗号隔开,并括起来的名字在报价。

例子:“DotExceptNewline”,的确,“freespace”,假的

点匹配换行符字符,指定为逗号分隔的对,由“DotExceptNewline”和一个逻辑标量。将该选项设置为0 (false)以省略换行符字符点匹配。

例子:pat = regexpppattern ('m.','DotExceptNewline',true)

匹配空白字符,指定为逗号分隔的对,由“freespace”和一个逻辑标量。将该选项设置为1 (true),以便在匹配时省略空白字符和注释。

例子:pat = regexpppattern ('m.',' freespespaces ',false)

匹配时忽略大小写,指定为逗号分隔的对,由“IgnoreCase”和一个逻辑标量。将该选项设置为1 (true)以匹配任何情况。

例子:pat = regexpppattern ('m.','IgnoreCase',true)

元字符处理,指定为逗号分隔的对,由“锚”其中一个价值观是:

价值 描述
“文本” 处理元字符而且作为文本锚。这将把正则表达式匹配锚定到文本的开头或结尾,这可能跨越多行。
“行” 处理元字符而且作为线锚。这将把正则表达式匹配锚定到文本中的行首或行尾。当您有多行文本且不希望匹配跨越多行时,此选项非常有用。

例子:pat = regexpppattern ('\d+',' anchor ','line')

输出参数

全部折叠

模式表达式,返回为模式对象。

版本历史

在R2020b中引入

Baidu
map