Wil*_*gyi 6 regex regex-lookarounds
我想匹配该单词,gay除非它是该单词的一部分megayacht。我知道我可以使用负前瞻和负后瞻来排除gayacht或megay从匹配中,例如
(?<!me)gay
Run Code Online (Sandbox Code Playgroud)
和
gay(?!acht)
Run Code Online (Sandbox Code Playgroud)
但使用
(?<!me)gay(?!acht)
Run Code Online (Sandbox Code Playgroud)
仍然会从比赛中排除megay和gayacht,这不是我想要的。我找不到同时需要两者的方法。
使用
gay(?!(?<=megay)acht)
Run Code Online (Sandbox Code Playgroud)
请参阅正则表达式证明。
解释
--------------------------------------------------------------------------------
gay 'gay'
--------------------------------------------------------------------------------
(?! look ahead to see if there is not:
--------------------------------------------------------------------------------
(?<= look behind to see if there is:
--------------------------------------------------------------------------------
megay 'megay'
--------------------------------------------------------------------------------
) end of look-behind
--------------------------------------------------------------------------------
acht 'acht'
--------------------------------------------------------------------------------
) end of look-ahead
Run Code Online (Sandbox Code Playgroud)