如何在Matlab中编写正则表达式来选择字符串的一部分?

时间:2014-04-01 23:26:32

标签: regex string matlab

鉴于这些字符串:

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')

但结果并非我的想法。

1 个答案:

答案 0 :(得分:1)

要使用OR操作(|),又称alternation,它需要位于子表达式()内,而不是character set {{1} }。而不是,

[]

使用

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