MATLAB中regexprep函数用法

目录

语法

说明

示例

更新的文本

在替代文本中包括词元

在替代文本中包括动态表达式

更新多段文本

保留原始文本中的大小写

替换零长度匹配项


        regexprep函数的功能是使用正则表达式替换文本。

语法

newStr = regexprep(str,expression,replace)
newStr = regexprep(str,expression,replace,option1,...optionM)

说明

​newStr= regexprep(str,expression,replace) 将 str 中与 expression 匹配的文本替换为 replace 描述的文本。regexprep 函数在 newStr 中返回更新的文本。​

  • 如果 str 是一段文本(字符向量或字符串标量),则 newStr 也是一段相同类型的文本。即使 expression 或 replace 是字符向量元胞数组或字符串数组,newStr 也是一段文本。当 expression 为元胞数组或字符串数组时,regexprep 将第一个表达式应用于 str,然后将每个后续表达式应用于前面的结果。

  • 如果 str 是元胞数组或字符串数组,则 newStr 是与 str 具有相同维度的元胞数组或字符串数组。对于 str 的每个元素,regexprep 函数按顺序应用各表达式。

  • 如果不存在与 expression 的匹配项,则 newStr 等同于 str。

newStr= regexprep(str,expression,replace,option1,...optionM) 使用指定的选项修改搜索。例如,指定 'ignorecase' 以执行不区分大小写的匹配。

示例

更新的文本

        替换以 M 开头和以 y 结尾且其中至少有一个字符的单词。

str = 'My flowers may bloom in May';
expression = 'M(\w+)y';
replace = 'April';

newStr = regexprep(str,expression,replace)
newStr = 
'My flowers may bloom in April'

在替代文本中包括词元

        通过在词元中捕获紧随 'walk' 的字母来替换短语 'walk up' 的变体。

str = 'I walk up, they walked up, we are walking up.';
expression = 'walk(\w*) up';
replace = 'ascend$1';

newStr = regexprep(str,expression,replace)
newStr = 
'I ascend, they ascended, we are ascending.'

在替代文本中包括动态表达式

        使用 upper 函数将句子开头的小写字母替换为其大写形式。

str = 'here are two sentences. neither is capitalized.';
expression = '(^|\.)\s*.';
replace = '${upper($0)}';

newStr = regexprep(str,expression,replace)
newStr = 
'Here are two sentences. Neither is capitalized.'

        该正则表达式匹配紧随字符向量 (^) 开头的单个字符 (.) 或句点 (\.) 和任何空白 (\s*)。replace 表达式调用 upper 函数以获取当前匹配的字符 ($0)。

更新多段文本

        将一组字符向量中的每个双重复字母替换为符号 '--'

str = {                                 ...
'Whose woods these are I think I know.' ; ...
'His house is in the village though;'   ; ...
'He will not see me stopping here'      ; ...
'To watch his woods fill up with snow.'};

expression = '(.)\1';
replace = '--';
newStr = regexprep(str,expression,replace)
newStr = 4x1 cell
    {'Whose w--ds these are I think I know.'}
    {'His house is in the vi--age though;'  }
    {'He wi-- not s-- me sto--ing here'     }
    {'To watch his w--ds fi-- up with snow.'}

保留原始文本中的大小写

        在查找匹配项时忽略正则表达式中的字母大小写,但在更新时模拟原始文本的字母大小写。

str = 'My flowers may bloom in May';
expression = 'M(\w+)y';
replace = 'April';

newStr = regexprep(str,expression,replace,'preservecase')
newStr = 
'My flowers april bloom in April'

替换零长度匹配项

        使用 '^' 运算符在字符向量开头插入文本,这将返回零长度匹配项,以及 'emptymatch' 关键字。

str = 'abc';
expression = '^';
replace = '__';

newStr = regexprep(str,expression,replace,'emptymatch')
newStr = 
'__abc'

参数说明

str — 要更新的文本

        要更新的文本,指定为字符向量、字符向量元胞数组或字符串数组。

expression — 正则表达式

        正则表达式,指定为字符向量、字符向量元胞数组或字符串数组。每个表达式可包含字符、元字符、运算符、词元和用于指定在 str 中匹配的模式的标志。

replace — 替代文本

替代文本,指定为字符向量、字符向量元胞数组或字符串数组,如下所示:

  • 如果 replace 为单个字符向量且 expression 为字符向量元胞数组,则 regexprep 对每个表达式使用相同的替代文本。

  • 如果 replace 为 N 字符向量的元胞数组且 expression 为单个字符向量,则 regexprep 尝试 N 次匹配和替代。

  • 如果 replace 和 expression 均为字符向量元胞数组,则它们必须包含相同数量的元素。regexprep 将每个 replace 元素与 expression 中与其匹配的元素配对。

option — 搜索或替代选项

        搜索或替代选项,指定为一个字符向量或整数值。

newStr — 更新的文本

        更新后的文本,以字符向量、字符向量元胞数组或字符串数组的形式返回。newStr 的数据类型与 str 的数据类型相同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值