【发布时间】:2015-08-08 10:38:43
【问题描述】:
In continuation of a previous question I had:
因此,我必须仅使用正则表达式来选择除特定单词之外的所有内容。出于示例的目的,单词将是“foobar”。这是应该发生的:
适用于本示例的原始正则表达式是 /\W*\b(?!foobar).+?\b\W*/g。
该正则表达式的问题在于,诸如 foobartest 和 foobar1234 之类的内容以及 foobar 之后的任何内容都会与 foobar 一起被忽略。这不是我想要的。 test 和 1234 不应该被忽略,但是开头的 foobar 应该,它不应该排除整个单词,因为它不是 完全 foobar。应该发生这种情况的唯一情况是foobarfoobar,它会按预期忽略两个 foobar。 Everything else 应无一例外地匹配。
The supposed duplicate 没有完成我的要求。
最后要注意的是,我不能使用lookbehind,只能使用lookahead。有什么方法可以实现我想要的吗?谢谢!
【问题讨论】:
-
不行怎么办?
-
@Anonymous 这给了我一个“无限”错误。为了提供帮助,我正在网站 regexr.com 上测试我的正则表达式
-
如果完全这样使用它不应该给出无限错误,但你是对的,它有问题。我可以发布答案,但我需要先知道您使用的是什么语言。很抱歉造成误会,我的错。
-
@Anonymous 我正在使用基于 javascript 的正则表达式引擎。 Regexr 是我发现的最好的沙箱,我可以使用的正则表达式类型。
-
@Anonymous 所以如果不可能,有人可以发布一个答案来解释它是怎么回事吗?在这种情况下,我会接受该回复作为答案。
标签: regex