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

时间:2018-03-01 11:01:53

标签: regex regular-language

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

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

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

应忽略此模式dEFOriDate(pNextEF)==dEFDesDate(pATREF));,因为它具有==

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

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

2 个答案:

答案 0 :(得分:1)

(?!=)之后添加否定= lookahead

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

如果(?!=)(与=匹配)后跟另一个=,则=预测将无法匹配。

请参阅regex demo

答案 1 :(得分:1)

您可以匹配一个等号,然后使用否定的character class匹配等号[^=]

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