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