MATLAB正则表达式③:分组操作

  • 原创
  • |
  • 浏览:457
  • |
  • 更新:
  • |
  • 标签:MATLAB 

介绍MATLAB中支持的正则表达式分组,包括(expr),(?:expr),(?>expr),(expr1|expr2)这些。

工具/原料

  • MATLAB R2016a

方法/步骤

  1. 1

    首先,用法'(expr)',即将部分表达式用圆括号括起来,会将其视为一个组且视为一个标记。

    这样的用途就是,通过'\N'可以匹配前面匹配到的第N个标记。

    MATLAB正则表达式③:分组操作
  2. 2

    '(expr)'后面可以加限定符,将会把组视作整体进行限定。

    比如'(ABC){4}'将会匹配ABCABCABCABC

    MATLAB正则表达式③:分组操作
  3. 2
    该信息未经授权抓取自百度经验
  4. 3

    使用符号'(?:expr)'和'(expr)'一样有成组效果,但只是匹配,不会存为标记(token)。如图:

    'C3H8'在上面的匹配中是第2个token;

    'C3H8'在下面的匹配中是第1个token,因为第一个组里加上了'?:'。

    MATLAB正则表达式③:分组操作
  5. 4

    使用符号'(?>expr)'与'(?:expr)'的区别是,前者匹配expr时不会回溯。效果如下。

    MATLAB正则表达式③:分组操作
  6. 5

    使用符号'(expr1|expr2|expr3...)'可以匹配expr1或者expr2或者expr3...

    如果exprn匹配成功则会无视后面的。如果不成功则会尝试exprn+1

    这一个符号可以与前面的'?:'/'?>'搭配使用。

    MATLAB正则表达式③:分组操作
  7. 6

    使用分组的另一个技巧是,可以在regexprep函数进行子串替换时,使用$n访问匹配到的内容。效果如图。

    MATLAB正则表达式③:分组操作
    END

注意事项

  • 本经验讲解分组操作,重点不在标记操作。和token有关的操作符还有很多不在本经验范围。
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。
作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。
展开阅读全部
相关标签MATLAB