2013-11-04 148 views
-2

我使用此示例:https://stackoverflow.com/a/406408/204819来构建一个正则表达式,该正则表达式可以匹配不包含表达式的字符序列。不幸的是,这并不工作:正则表达式不包含字符串

http://regex101.com/r/yR3bS4

请建议如何使这项工作表现。

+0

我想你忘了“我”('^((??heide)。)* foo $'似乎按预期工作)。 – femtoRgon

+4

这个问题似乎是脱离主题,因为它是关于排字错误 – HamZa

回答

1

它确实有效。您的输入字符串是heidefoo而不是hedefoo

+1

那是一个愚蠢的错误。 – romaninsh

0
hede != heide 

其他人也指出。稍微更新例如

^(?:(?!hede).)*foo$ 

现在它匹配“整个事情”正确(负回顾后组是“非捕获”和你结束了整个表达式)。请参阅http://regex101.com/r/xV2sS7

0

有一个错字。除此之外,通过这种方式检查每个角色的
没有条件时可能会有开销惩罚。

更好的方法是尝试使用字符串util的做到这一点。
或者,如果是严格的正则表达式解决方案,只需进行两遍。

if (!match(/hede/) && match(/foo$/)) 
{ 
    // sucess 
} 

如果它是一个短的字符串,那么你的正则表达式将不会是一个问题。

相关问题