2013-05-28 36 views
0

我想用只包含负面lookahead的正则表达式来检查句子。所以如果写在正则表达式中只使用负面lookahead

^(?!My Words)$ 

和测试字符串是some characters。我期望正则表达式应该返回true,但它不会。应该有性格消耗匹配字符来产生结果吗?

回答

2

正则表达式您提供的手段:

  • 字符串
  • 的开始,以下字符不是“我的话”
  • 字符串

的到底有没有检查正则表达式字符串必须包含任何东西。更具体地说,它必须不包含任何内容。在这种情况下,预见并不会做任何事情。

想必你想要更多的东西是这样的:

^(?!My Words).*$ 

.*仅仅是零个或多个野生卡,所以基本上什么。在这种情况下,预见阻止从开始的字符串“我的单词”。

如果你要防止“我的话”出现随时随地,这样的事情应该工作:

^(?!.*My Words).*$ 
+0

明白了..谢谢..正则表达式只是embrassing ..所以容易又如此混乱:) –

+1

或简单地'^(?!我的话)'如果你只是测试匹配 – Anirudha

+0

@Anirudh那么,这取决于。如果你做了一个'string.matches'(以任何语言),那就行不通了。 – Dukeling