正则表达式,Word包含x但不以x开头

时间:2014-11-22 20:07:53

标签: regex

我不知道该怎么做。我想要一个字符串来包含"结束"但不是从结束开始。一个例子是"升序"。我已经尝试了^[^(end)]*end.*,但是发现"结束"太。 那么如何才能正确完成?

1 个答案:

答案 0 :(得分:2)

您的尝试不起作用,因为您混淆了一个否定的字符类(使用[^...]定义,但能够仅按照定义覆盖单个字符)并使用负前瞻(使用(?!...)定义)。

你是否正确地写了这个,它看起来像那样:

^(?!end).+end.*$

...由于显而易见的原因,在前一个+之后使用*代替.。 )

请注意,更直接的尝试 - ^.+end.*$ - 虽然看起来很正常,但实际上却失败了看起来像endendless的单词(即,当目标字符串中有end子字符串时,但它确实以end开头。

另外,如果你在目标字符串中寻找单词,而不仅仅是验证它,你应该相应地调整正则表达式,使用单词边界锚点而不是字符串锚点:

\b(?!end)\w+end\w*

Demo