在正则表达式中仅使用负向前瞻

时间:2013-05-28 11:49:59

标签: regex regex-negation regex-lookarounds

我想用正则表达式检查只包含负向前瞻的句子。所以如果写

   ^(?!My Words)$  

,测试字符串为some characters。我希望正则表达式应该返回true,但事实并非如此。应该有角色消费匹配角色来影响结果吗?

1 个答案:

答案 0 :(得分:2)

您提供的正则表达式意味着:

  • 字符串的开头
  • 以下字符不是“我的话”
  • 字符串的结尾

正则表达式中没有检查字符串必须包含任何内容。更具体地说,必须不包含任何东西。在这种情况下,前瞻不会做任何事情。

大概你想要更像这样的东西:

^(?!My Words).*$

.*只是零或更多的外卡,所以基本上都是。在这种情况下,前瞻会阻止字符串“我的单词”开头。

如果你想阻止“我的话”出现任何地方,这样的事情应该有效:

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