在源代码中查找左值和右值的正则表达式(忽略 == )
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+\)=.*?;
来查找以下形式的模式:
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:
匹配一个等号,然后不匹配等号[^=]