正则表达式在源代码中查找左值和右值(ignore ==)

问题描述 投票:1回答:2

我使用正则表达式dEF\w+\(\w+\)=.*?;来查找以下形式的模式:

dEFPFC(pATREF)=dIDOSSEGPfc(pIDOSSeg);
dEFTur(pATREF)=dIDOSSEGTurnaround(pIDOSSeg);

问题是它还考虑了具有==的模式。我不希望这样。

这种模式dEFOriDate(pNextEF)==dEFDesDate(pATREF));应该被忽略,因为它有==

我尝试使用dEF\w+\(\w+\)={1}.*?;但它没有用


我在https://regex101.com/上测试了正则表达式。

regex regular-language
2个回答
1
投票

(?!=)之后添加负lookahead =

dEF\w+\(\w+\)=(?!=).*?;
              ^^^^^ 

如果(?!=)(与=匹配)跟随另一个=,那么=前瞻将失败。

regex demo


1
投票

你可以匹配一个等号,之后不是等号[^=]使用否定的character class

dEF\w+\(\w+\)=[^=].*?;

© www.soinside.com 2019 - 2024. All rights reserved.