我对此帖有一个跟进问题:RegEx to exclude match if a certain word is present, but not another partial word。
如果给出以下字符串。
x*vec*grad(vec)
如何找到'vec'而不是'grad(vec)'?
我假设我需要对搜索表达式使用类似下面的内容,但这对我不起作用。
vec(?!(?<=grad\(vec))
我也想忽略括号内的空格,即它应该适用于以下内容。
x*vec*grad( vec )
我正在使用MATLAB的regexp函数。感谢。
答案 0 :(得分:2)
这适用于c#,它应该足够容易移植到MATLAB:
(?<!grad\()vec
它匹配vec*grad
但不匹配x*grad(vec)
。
诀窍是使用负面的lookbehind(<!
)而不是使用tyring来反转正面的lookbehind(<=
)。