如果一个字符串以某个单词开头但不以另一个单词开头,使用正则表达式返回该字符串。

3
如果字符串以page开头但不是以pager开头,我希望返回整个字符串。 我尝试了下面的示例,但对我无效。
以下是包含alpha但不包含beta的单通regex示例(在此帖子中找到):
^((?!beta).)*alpha((?!beta).)*$

然而,如果您尝试使用page而不是pager,这将无法起作用:
^((?!pager).)*page((?!pager).)*$
2个回答

3
这样做就可以了:
^(?!pager)page.*$

或者:

^page(?!r).*$

两者都允许字符串中包含'pager',但不允许出现在开头。


0

这样就可以了:

^page(?:[^r].*)?$

      


实际上,它并不适用于所有情况:它无法匹配 'page',因为使用 [^r] 时,您要求匹配除了 'r' 以外的任何字符。 - Otiel
现在为什么不简单地使用^page([^r].*)?$呢? - Otiel
这是一种习惯。我经常使用分组,所以除非必要,否则不进行捕获。这里并不重要。 - spender

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接