0

我对这篇文章有一个后续问题: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 的正则表达式函数。谢谢。

4

1 回答 1

2

这在 c# 中有效,它应该很容易移植到 MATLAB:

(?<!grad\()vec

它匹配vec*grad但不匹配x*grad(vec)

诀窍是使用负后视 ( <!) 而不是累加来反转正后视 ( <=)。

于 2012-12-14T05:08:38.430 回答