【问题标题】:how to write a regex in Matlab to select part of a string?如何在 Matlab 中编写正则表达式来选择字符串的一部分?
【发布时间】:2014-04-01 23:26:32
【问题描述】:

给定这些字符串:

var-nvar-ar var-nvar-br var-int-ar var-int-br oth-nvar-ar oth-nvar-br oth-int-ar oth-int-br

如果子字符串是,我想编写一个正则表达式,它选择包含我的子字符串的所有字符串:

字符串开头和-之间

-- 之间

- 和字符串结尾之间

所以如果substring = 'var' 那么正则表达式会选择

var-nvar-ar var-nvar-br var-int-ar var-int-br

我试过了:

strings = {'var-nvar-ar' 'var-nvar-br' 'var-int-ar' 'var-int-br' 'oth-nvar-ar' 'oth-nvar-br' 'oth-int-ar' 'oth-int-br'}

regexp(strings,'[^|(*?-)]var[(-.*)|$]','match')

但结果不是我想的那样。

【问题讨论】:

    标签: regex string matlab


    【解决方案1】:

    要使用 OR 运算 (|),也就是 alternation,它需要位于子表达式 () 内,而不是 character set []。而不是,

    regexp(strings,'[^|(*?-)]var[(-.*)|$]','match')
    

    使用

    regexp(strings,'(^|(*?-))var((-.*)|$)','match','once')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-07-22
      • 2019-02-03
      • 2013-02-19
      • 2021-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多