仅当前面没有另一个字符串时才匹配字符串[重复]
Posted
技术标签:
【中文标题】仅当前面没有另一个字符串时才匹配字符串[重复]【英文标题】:Match string only when not preceded by another string [duplicate] 【发布时间】:2017-08-09 10:19:09 【问题描述】:我想在所有情况下都匹配包含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))
的变体)的变体,但我没有设法得到我想要的结果。
我想要的甚至可以用正则表达式实现吗?
【问题讨论】:
【参考方案1】:您可以通过使用negative look-behind 断言来完成此操作...
\w*(?<!ENABLED_)MYSTUFF\w*
见regex demo
【讨论】:
我确实想匹配整个单词。 编辑问题以明确我需要整个单词。以上是关于仅当前面没有另一个字符串时才匹配字符串[重复]的主要内容,如果未能解决你的问题,请参考以下文章