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

Regular expression to find lvalue and rvalue in source code (ignore == )

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

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

问题在于它还考虑了具有 == 的模式。我不要那个。

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

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


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

=:

后加一个负数(?!=)lookahead
dEF\w+\(\w+\)=(?!=).*?;
              ^^^^^ 

如果 =(与 = 匹配)后跟另一个 =

,则 (?!=) 前瞻将失败

参见regex demo

您可以使用取反 character class:

匹配一个等号,然后不匹配等号 [^=]

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