我不知道该怎么做。我想要一个字符串来包含"结束"但不是从结束开始。一个例子是"升序"。我已经尝试了^[^(end)]*end.*
,但是发现"结束"太。
那么如何才能正确完成?
答案 0 :(得分:2)
您的尝试不起作用,因为您混淆了一个否定的字符类(使用[^...]
定义,但能够仅按照定义覆盖单个字符)并使用负前瞻(使用(?!...)
定义)。
你是否正确地写了这个,它看起来像那样:
^(?!end).+end.*$
...由于显而易见的原因,在前一个+
之后使用*
代替.
。 )
请注意,更直接的尝试 - ^.+end.*$
- 虽然看起来很正常,但实际上却失败了看起来像endendless
的单词(即,当目标字符串中有end
子字符串时,但它确实以end
开头。
另外,如果你在目标字符串中寻找单词,而不仅仅是验证它,你应该相应地调整正则表达式,使用单词边界锚点而不是字符串锚点:
\b(?!end)\w+end\w*