MATLAB中的regexp不会读取要匹配的括号

时间:2016-03-20 19:57:08

标签: regex matlab

我正在尝试使用regexp匹配两个字符串,但只有字符串中没有括号时,该函数才会返回该值。

例如:

regexp('Amidation(N)','Amidation(N)')
returns

0

但是

regexp('Amidation ()','Amidation()')
returns
1

它也匹配:

regexp('Amidation-','Amidation-')
returns 1

我尝试使用strcmp,但是它不会读取字符串中的多个参数。

例如:

strcmp('Amidation;Acetylation (E);Phosphorylation','Acetylation (E)')
returns 0

但是

strcmp('Amidation (E)','Amidation (E)')
returns 1.

我需要一个像:

这样的功能
match_function('Amidation (E)','Amidation (G)')
returns 0

match_function('Amidation (E)','Amidation (E)')
returns 1

请让我知道我应该使用哪种功能

1 个答案:

答案 0 :(得分:2)

如果要匹配括号a regex symbol for performing grouping,则需要使用反斜杠(\)转义括号。

regexp('Amidation(N)','Amidation\(N\)')

如果您想将文字字符串与regexp匹配,请考虑使用regexptranslate,它可以为您转义所有特殊字符。

escaped_pattern = regexptranslate('escape', 'Amidation(N)');
regexp('Amidation(N)', escaped_pattern)