2014-11-22 30 views

回答

2

你的企图没有工作,因为你糊涂否定字符类([^...]定义,但可以通过定义来只覆盖单个字符)与负先行(与(?!...)定义)。

你有没有正确地写入这一点,它看起来会是这样的:由于显而易见的原因前面.

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

...与+代替*权之后。 )

注意,更直接的尝试 - ^.+end.*$ - 虽然看起来相当正常的,实际上是在词看起来像endendless(失败,即当有目标字符串的end子,但它确实与end启动过)。

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

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

Demo

+0

您可能希望编辑此代码以解释前端的单词边界,或者额外发布该单词边界。这将匹配“这是我们所知道的世界的末日”,或“这是结束”。 – 2014-11-22 20:19:34

+0

感谢您的答案,但我正在使用python并遍历单词,所以每个字符串都是一个单词。我用负面的样子试了一下,但我忘了补充。+傻,我,谢谢。 – user3146659 2014-11-22 20:39:47

+1

@ user3146659:如果每个字符串都是一个单词,则根本不需要正则表达式,您只需检查从开始到第三个字符的子字符串是否不是“结束”。 – 2014-11-22 21:18:36

相关问题