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