仅当前面没有另一个字符串时才匹配字符串
Match string only when not preceded by another string
我想在所有情况下匹配包含 MYSTUFF
的字符串, 除了 当 MYSTUFF
前面有 ENABLED_
时。以便以下匹配:
MYSTUFF
m_MYSTUFF
MYSTUFFIsGreat
allOf_MYSTUFF
但以下不会:
ENABLED_MYSTUFF
m_ENABLED_MYSTUFF
ENABLED_MYSTUFFIsGreat
allOf_ENABLED_MYSTUFF
我尝试了几种使用负前瞻(\w*(?!.*ENABLED_)MYSTUFF\w*
的变体)和条件((?(?!=ENABLED_)(MYSTUFF))
的变体)的变体,但我没有设法得到我想要的结果。
我想要的东西甚至可以用正则表达式实现吗?
您可以使用 negative look-behind 断言来完成此操作...
\w*(?<!ENABLED_)MYSTUFF\w*
我想在所有情况下匹配包含 MYSTUFF
的字符串, 除了 当 MYSTUFF
前面有 ENABLED_
时。以便以下匹配:
MYSTUFF
m_MYSTUFF
MYSTUFFIsGreat
allOf_MYSTUFF
但以下不会:
ENABLED_MYSTUFF
m_ENABLED_MYSTUFF
ENABLED_MYSTUFFIsGreat
allOf_ENABLED_MYSTUFF
我尝试了几种使用负前瞻(\w*(?!.*ENABLED_)MYSTUFF\w*
的变体)和条件((?(?!=ENABLED_)(MYSTUFF))
的变体)的变体,但我没有设法得到我想要的结果。
我想要的东西甚至可以用正则表达式实现吗?
您可以使用 negative look-behind 断言来完成此操作...
\w*(?<!ENABLED_)MYSTUFF\w*