MATLAB正则表达式③:分组操作
- 原创
- |
- 浏览:457
- |
- 更新:
- |
- 标签:MATLAB
介绍MATLAB中支持的正则表达式分组,包括(expr),(?:expr),(?>expr),(expr1|expr2)这些。
方法/步骤
首先,用法'(expr)',即将部分表达式用圆括号括起来,会将其视为一个组且视为一个标记。
这样的用途就是,通过'\N'可以匹配前面匹配到的第N个标记。
'(expr)'后面可以加限定符,将会把组视作整体进行限定。
比如'(ABC){4}'将会匹配ABCABCABCABC
- 该信息未经授权抓取自百度经验
使用符号'(?:expr)'和'(expr)'一样有成组效果,但只是匹配,不会存为标记(token)。如图:
'C3H8'在上面的匹配中是第2个token;
'C3H8'在下面的匹配中是第1个token,因为第一个组里加上了'?:'。
使用符号'(?>expr)'与'(?:expr)'的区别是,前者匹配expr时不会回溯。效果如下。
使用符号'(expr1|expr2|expr3...)'可以匹配expr1或者expr2或者expr3...
如果exprn匹配成功则会无视后面的。如果不成功则会尝试exprn+1
这一个符号可以与前面的'?:'/'?>'搭配使用。
使用分组的另一个技巧是,可以在regexprep函数进行子串替换时,使用$n访问匹配到的内容。效果如图。
END
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。
作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。
展开阅读全部











