介绍MATLAB中的函数regexprep,该函数可以匹配正则表达式并替换匹配的子串。
工具/原料
MATLABR2016a
方法/步骤
1、regexprep函数的最简化用法是regexprep(原字符串,正则表达式,替换子串)如图,批量替换文件后缀名为txt.
2、使用regexprep时,在替换的子串中可以使用替换操作符(以$开头)。$N表示正则表达式中的第艘绒庳焰n个token。如图,在正则表达式中'.'后面的是一个token,效果如图。
3、替换操作符(以$开头)还有:$`表示匹配部分前面,$'(在正则表达式里要输入为$'')表示匹配符分后面。效果如图。
4、替换操作符还可以是$0表示当前匹配,还可以是MATLAB表达式。使用$0表示当前匹配子串,${upper(...)}执行函数upper。如图,实现了对一个字符串中的单词进行首字母大写。
5、如果输入是一个字符串组成的元胞数组,则正则匹配和替换会分别作用于每个字符串,并输出等长的元胞数组。如图。
6、函数regexprep还可以有选项,如图,通过选项'preservecase',匹配时忽略大小写,但是替换时保留原来的大小写。效果如图。
7、通过选项'emptymatch',使得苯侈忏帘空匹配也可以被替换,如图用'^'匹配字符串开头之酡箔挝棍前,替换后相当于在字符串前面添加子串。选项还有很多:'once'表示只替换一个匹配,一个数字N表示替换第N个匹配,'warnings'表示显示警告信息,'ignorecase'表示忽略大小写,'dotexceptnewline'表示匹配'.'的时候不匹配换行符,'lineanchors'表示把^和$匹配作一行的开头和结尾(默认是整个字符串),'freespacing'表示忽略正则表达式中字面的空格和#.要匹配空格和#需要'\'和'\#'