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