正则表达式不包含字符串

时间:2013-11-04 20:22:43

标签: regex regex-negation regex-lookarounds regex-greedy

我正在使用这个例子:https://stackoverflow.com/a/406408/204819来构建一个正则表达式,它将匹配包含表达式的字符序列。不幸的是,这不起作用:

http://regex101.com/r/yR3bS4

请建议如何使此表达式有效。

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

hede != heide
正如其他人也指出的那样。稍微更新的例子

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

现在它正确地匹配“整个事物”(负面的后视组是“非捕获”,你最终得到了整个表达式)。见http://regex101.com/r/xV2sS7

答案 2 :(得分:0)

有一个错字。除此之外,在检查时可能会有一个间接费用 这种方式并不是每个角色的条件。

更好的方法是尝试使用字符串util来执行此操作。
或者,如果严格的正则表达式解决方案,只需两次通过。

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

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