使用正则表达式替换文本
将文本替换newStr
= regexprep (str.
,表达
,取代
)str.
相匹配表达
正文由取代
.这regexprep
函数返回更新后的文本newStr
.
如果str.
是单个文本(字符向量或字符串标量)吗newStr
也是同一类型的单个文本。newStr
是一段文字甚至什么时候表达
或取代
是字符向量的单元格数组或字符串数组。当表达
是单元格数组或字符串数组,regexprep
适用第一个表达式str.
,然后将每个后续表达式应用到前面的结果。
如果str.
是单元格数组还是字符串数组newStr
是一个单元数组或字符串阵列,尺寸与str.
.对于每个元素str.
,regexprep
函数依次应用每个表达式。
如果没有匹配表达
,然后newStr
相当于str.
.
替换以米
最后,y
,且两者之间至少有一个字符。
str =“我的花可能在五月盛开”;表达=“M (\ w +) y”;替换=“4”;newStr = regexprep (str,表情,取代)
纽约威尔='我的花朵可能会在四月开始绽放
替换短语的变化'步行'
通过捕捉后面的字母'走'
在一个令牌。
str =“我走过去,他们走过去,我们也在走。”;表达=步行(\ w *)”;替换=“提升1美元”;newStr = regexprep (str,表情,取代)
我上升,他们上升,我们也在上升。
用他们的大写等价物在句子开头替换小写字母上
函数。
str =这里有两个句子。都是大写。;表达=”(^ | \)\ s *。”;替换=“${上(0美元)}”;newStr = regexprep (str,表情,取代)
这里有两个句子。都是大写。
正则表达式匹配单个字符(.
),跟随字符向量的开始(^)
或一段时间内(\)。
和任何空格(\ s *)
.这取代
表达式调用上
函数的当前匹配字符($0
).
用符号替换一组字符向量中的每次发生双字母“——”
.
str = {...“我想我知道这是谁的树林。”;...“不过他的家在村子里。”;...“他不会看见我停在这里的。”;...“看他的树林被雪覆盖。”};表达='(。)\ 1';替换=“——”;newStr = regexprep (str,表情,取代)
newStr =4 x1细胞{'我想我知道这些是谁的。不过他的房子还在旧时,他不会让我呆在这里看他的房子被雪覆盖的。
查找匹配时,在正则表达式中忽略字母案例,但更新时模仿原始文本的字母案例。
str =“我的花可能在五月盛开”;表达=“M (\ w +) y”;替换=“4”;newStr = regexprep (str,表达、替换“preservecase”)
纽约市='我的花朵四月绽放了四月'
使用该字符向量的开头插入文本“^”
操作符,该操作返回零长度匹配,以及“emptymatch”
关键字。
str =“abc”;表达=“^”;替换=“_”;newStr = regexprep (str,表达、替换“emptymatch”)
newStr = ' __abc '
str.
- - - - - -文字更新要更新的文本,指定为字符向量、字符向量的单元格数组或字符串数组。
数据类型:字符
|细胞
|字符串
表达
- - - - - -正则表达式正则表达式,指定为字符向量、字符向量的单元格数组或字符串数组。每个表达式可以包含指定要匹配的模式的字符、元字符、操作符、标记和标志str.
.
下表描述了正则表达式的元素。
元字符
元字符代表字母、字母范围、数字和空格字符。用它们来构造一个通用的字符模式。
元字符 |
描述 |
例子 |
---|---|---|
|
任何单个字符,包括空白 |
|
|
方括号内包含的任何字符。以下字符按字面意思处理: |
|
|
方括号内未包含的任何字符。以下字符按字面意思处理: |
|
|
范围内的任何角色 |
|
|
任何字母、数字或下划线字符。对于英文字符集, |
|
|
任何不是字母,数字或下划线的字符。对于英文字符集, |
|
|
任何空白字符;相当于 |
|
|
任何非空白字符;相当于 |
|
|
任何数字;相当于 |
|
|
任何数字字符;相当于 |
|
|
八万价值的特征 |
|
|
十六进制值的特征 |
|
字符表示
操作符 |
描述 |
---|---|
|
报警(嘟) |
|
退格 |
|
换页 |
|
新行 |
|
回车 |
|
水平选项卡 |
|
垂直制表符 |
|
任何在正则表达式中具有特殊含义的字符,您希望按字面意义匹配(例如,use |
量词
限定符指定模式在匹配文本中必须出现的次数。
量词 |
发生的次数 |
例子 |
---|---|---|
|
连续0或更多次。 |
|
|
0乘以1乘以。 |
|
|
连续1次或更多。 |
|
|
至少
|
|
|
至少
|
|
|
完全 相当于 |
|
量词可以以三种方式出现,如下表所示。问表示上表中的任何量词。
模式 |
描述 |
例子 |
||||
---|---|---|---|---|---|---|
|
贪婪表达式:匹配尽可能多的字符。 |
考虑到文本
|
||||
|
惰性表达式:匹配尽可能少的字符。 |
考虑到文本
|
分组运营商
分组操作符允许您捕获令牌、将一个操作符应用于多个元素或在特定组中禁用回溯。
分组操作符 |
描述 |
例子 |
---|---|---|
|
对表达式和捕获标记的元素进行分组。 |
|
|
组,但不捕获令牌。 |
没有分组, |
|
组自动。不要在组内回溯以完成匹配,也不要捕获令牌。 |
|
|
匹配表达式 如果有匹配 你可以包括 |
|
锚
表达式中的锚与输入文本或单词的开头或结尾匹配。
锚 |
匹配…… |
例子 |
---|---|---|
|
输入文本的开头。 |
|
|
输入文本的结尾。 |
|
|
单词的开头。 |
|
|
一个词的结尾。 |
|
看看断言
LookAround断言查找立即在预期匹配之前立即或遵循预期匹配的模式,但不是匹配的一部分。
指针保持在当前位置,而对应于测试
表达式不会被捕获或丢弃。因此,前向断言可以匹配重叠的字符组。
PookAround断言 |
描述 |
例子 |
---|---|---|
|
向前查找匹配的字符 |
|
|
提前查找不匹配的字符 |
|
|
查找匹配的字符 |
|
|
查找不匹配的字符 |
|
如果指定了前向断言之前一个表达式,相当于一个逻辑运算和
.
手术 |
描述 |
例子 |
---|---|---|
|
匹配两个 |
|
|
匹配 |
|
逻辑和条件运算符
逻辑和条件运算符允许您测试给定条件的状态,然后使用结果确定哪个模式,如果有的话,以匹配下一个模式。这些运营商支持逻辑金宝app或
,如果
或如果/其他
条件。
条件可以是令牌,loesArweround运算符或表格的动态表达式(? @cmd)
.动态表达式必须返回逻辑或数值。
条件运算符 |
描述 |
例子 |
---|---|---|
|
匹配表达式 如果有匹配 |
|
|
如果条件 |
|
|
如果条件 |
|
令牌运营商
令牌是匹配文本的部分,它通过括在括号中的正则表达式的部分来定义。您可以在文本(序数令牌)中的序列中引用令牌,或者为更容易的代码维护和可读输出分配令牌的名称。
序数牌运营商 |
描述 |
例子 |
---|---|---|
|
在标记中捕获与括起来的表达式匹配的字符。 |
|
|
匹配 |
|
|
如果 |
|
叫牌运营商 |
描述 |
例子 |
---|---|---|
|
捕获命名令牌符合随附表达式的字符。 |
|
|
匹配引用的令牌 |
|
|
如果找到指定的令牌,则进行匹配 |
|
请注意
如果表达式已嵌套括号,MATLAB®捕获与最外层圆括号集对应的标记。例如,给定搜索模式”(和(y |奖赏))”
,Matlab创造了一个令牌'安德鲁'
但不是“y”
或“报答”
.
动态的正则表达式
动态表达式允许您执行MATLAB命令或正则表达式来确定要匹配的文本。
括在一起动态表达式的括号不创建捕获组。
操作符 |
描述 |
例子 |
---|---|---|
|
解析 当解析, |
|
|
执行表示的MATLAB命令 |
|
|
执行表示的MATLAB命令 |
|
在动态表达式中,使用下列操作符来定义替换文本。
替换操作符 |
描述 |
---|---|
|
当前匹配的输入文本的一部分 |
|
当前匹配之前的输入文本的一部分 |
|
当前匹配后面的输入文本的一部分(使用 |
|
|
|
命名为令牌 |
|
当MATLAB执行命令时返回的输出, |
评论
人物 |
描述 |
例子 |
---|---|---|
(? #评论) |
在正则表达式中插入注释。当匹配输入时,注释文本被忽略。 |
|
搜索的旗帜
搜索标志修改匹配表达式的行为。在表达式中使用搜索标志的替代方法是通过选项
输入参数。
国旗 |
描述 |
---|---|
(?-一世) |
匹配信箱(默认为 |
(我)? |
不匹配字母大小写(默认为 |
(?) |
匹配点( |
(? - s) |
用非换行符的任何字符匹配模式中的点。 |
(?-m) |
匹配 |
(?) |
匹配 |
(? - x) |
包括匹配时的空格字符和注释(默认值)。 |
x (?) |
匹配时忽略空格字符和注释。使用 |
标志修改的表达式可以出现在括号后面,例如
(?我)\ w *
或在括号内,用冒号与标志分开(:
), 如
(?我:\ w *)
后一种语法允许您更改较大表达式的部分行为。
数据类型:字符
|细胞
|字符串
取代
- - - - - -替换文本替换文本,指定为字符向量、字符向量单元格数组或字符串数组,如下所示:
如果取代
是单字符向量和表达
是字符向量的单元格数组吗regexprep
对每个表达式使用相同的替换文本。
如果取代
是一个细胞阵列N
特征向量和表达
是单个字符向量吗regexprep
尝试N
匹配和替换。
如果两个取代
和表达
是字符向量的单元格数组,那么它们必须包含相同数量的元素。regexprep
每两对取代
元素及其匹配的元素表达
.
替换文本可以包括常规字符,特殊字符(例如标签或新行)或替换运算符,如下表所示。
替换操作符 |
描述 |
---|---|
|
当前匹配的输入文本的一部分 |
|
当前匹配之前的输入文本的一部分 |
|
当前匹配后面的输入文本的一部分(使用 |
|
|
|
命名为令牌 |
|
当MATLAB执行命令时返回的输出, |
操作符 |
描述 |
---|---|
|
报警(嘟) |
|
退格 |
|
换页 |
|
新行 |
|
回车 |
|
水平选项卡 |
|
垂直制表符 |
|
任何在正则表达式中具有特殊含义的字符,您希望按字面意义匹配(例如,use |
数据类型:字符
|细胞
|字符串
选项
- - - - - -搜索或替换选项“一次”
|N
|“警告”
|'Ignorecase'
|“preservecase”
|“emptymatch”
|'dotexcepnewline'
|“lineanchors”
|...搜索或替换选项,指定为字符向量或整数值,如下表所示。
选项以集合的形式出现:一个选项对应于默认行为,一个或两个选项允许您覆盖默认行为。从集合中只指定一个选项。选项可以以任何顺序出现。
默认的 |
覆盖 |
描述 |
---|---|---|
|
|
尽可能多地匹配和替换表达式(默认),或者只匹配一次。 |
|
只替换 |
|
|
|
抑制警告(默认),或显示它们。 |
|
|
匹配字母大小写(默认),或在匹配和替换时忽略大小写。 |
|
匹配时忽略案例,但在替换时保留原始文本中的相应字符的情况。 |
|
|
|
忽略零长度匹配(默认),或包含它们。 |
|
|
匹配点与任何字符(默认),或者除换行符以外的所有匹配点( |
|
|
应用 |
|
|
在匹配时包括空格字符和注释(默认),或者忽略它们。与 |
数据类型:字符
|字符串
这个函数完全支持高数组。金宝app有关更多信息,请参见高大的数组.
你点击一个链接对应于这个MATLAB命令:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。金宝app
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。