正则表达式:每次出现没有特殊字符的单词

时间:2018-01-11 18:02:47

标签: regex matlab

我真的无法使用正则表达式来处理以下情况。我基本上解析了一些代码文件。我希望匹配一个单词的每个出现,该单词前面和后面跟着一个字母数字字符,但前提是在此出现之前没有特殊字符。为了更清楚地说明这个例子:

要匹配的字词:test_word

特殊字符:%

示例文本用方括号括起我想要的匹配数:

This is some example text                    [0]
(v, c) = test_word                           [1]
test_word(a,b)                               [1]
% a = test_word(b);                          [0]
test_word                                    [1]
a = test_word(d); b = test_word(c);          [2]
a = test_word; % b = test_word;              [1]
d = this_test_word(c)                        [0]

使用简单的表达式:\Wtest_word\W无论事先出现什么,我都会匹配test_word的每个出现。所以我尝试了表达式

(?m)^([^%\n]*?\W)test_word(\W[^\n]*?)$

这适用于除了两个出现的情况之外的所有情况。我只是不能让这个工作。我尝试了外观断言,但我真的被困在这里。

非常感谢你的帮助!

如果重要的话我在Matlab工作。

0 个答案:

没有答案