【发布时间】:2019-05-27 17:11:01
【问题描述】:
我想匹配一个在开头和结尾包含一些文本但中间不包含不同文本的字符串。例如:以一个单词 (\w+) 开头,以另一个单词结尾,但中间不包含NOT:
some_YES_text // ok
other_COOL_string // also ok
some_NOT_string // don't want to match this
通常,我可以通过负前瞻来做到这一点:
\w+_(?!NOT)\w+_\w+
但我正在用 Bash 编写一个不支持它的脚本。达到相同效果的最简单方法是什么?
编辑:我之前并不精确 - 我仍然需要使用正则表达式,而不仅仅是纯文本匹配。
【问题讨论】:
-
注意:PCRE 正则表达式实际上应该是
\w+_(?!NOT_)\w+_\w+。好吧,我现在不确定你是否真的需要在_..._之前和之后匹配字母、数字和下划线