我正在使用这个例子:https://stackoverflow.com/a/406408/204819来构建一个正则表达式,它将匹配包含表达式的字符序列。不幸的是,这不起作用:
请建议如何使此表达式有效。
答案 0 :(得分:1)
它确实有效。您的输入字符串为heidefoo
,而不是hedefoo
。
答案 1 :(得分:0)
hede != heide
正如其他人也指出的那样。稍微更新的例子
^(?:(?!hede).)*foo$
现在它正确地匹配“整个事物”(负面的后视组是“非捕获”,你最终得到了整个表达式)。见http://regex101.com/r/xV2sS7
答案 2 :(得分:0)
有一个错字。除此之外,在检查时可能会有一个间接费用 这种方式并不是每个角色的条件。
更好的方法是尝试使用字符串util来执行此操作。
或者,如果严格的正则表达式解决方案,只需两次通过。
if ( !match(/hede/) && match(/foo$/) )
{
// sucess
}
如果它是一个短字符串,那么你的正则表达式不会有问题。