正则表达式 - 如果它是字符串中唯一的单词,则排除单个单词

时间:2013-11-28 16:53:16

标签: regex word

如果特定单词是唯一输入的单词(忽略whitesapce),我正在寻找一个不通过的正则表达式。例如:

接受:

"Word hello"
"hello Word"
"Wordy"

编辑:也接受“你好你好”

拒绝:

"Word"
" Word"
"Word "
"   Word"

编辑:我没有说清楚我的问题。抱歉。我的意思是当字“字”是字符串中唯一的东西(忽略空格)时,我只希望它拒绝字符串。

4 个答案:

答案 0 :(得分:0)

如果Word需要成为匹配的一部分,则使用正则表达式

^(?!\s*Word\s*$)\s*\K.*Word.*?(?=\s*$)

如果没有,请使用

^(?!\s*Word\s*$)\s*\K.*\S

答案 1 :(得分:0)

实际上不确定这是否有效,但它看起来很适合你的例子:

^(?!\s*Word\s*$).*

答案 2 :(得分:-1)

也许不是最优雅的例子,但似乎通过了你的标准:

\S+.*Word.*|.*Word.*\S+

匹配整条线,这似乎是意图:

^.*\S+.*Word.*|.*Word.*\S+.*$

答案 3 :(得分:-1)

^\s*\w*Word\w*\s*$

如果您匹配字符串的开头和结尾,那么就可以完成这项工作。

否则,你需要做一些时髦的事情:

^(?<!\w)(\s*\w*Word\w*\s*)+(?!\w)$

如果您只需要匹配一次“Word”,那么:

^(?<!\w)(\s*\w*Word\w*\s*){1}(?!\w)$

<强>匹配

  • “Word”
  • “Word”
  • “myWord”

<强>非匹配:

  • “Word Word”
  • “Word Bob”
  • “一句话”
  • “一句话”