如何匹配一个特定的单词,在开头或结尾没有空格且没有其他字母?

时间:2019-06-11 14:46:36

标签: regex

假设我有一个单词电话

在我的情况下,可能的匹配如下

  1. 电话(电话开头和结尾没有空格)
  2. “电话”(结尾或开头可以有特殊字符)

需要被忽略的情况[在这里,我用 \ s 标记空格]

  1. 电话(开头或结尾的任何空格都不应该匹配)
  2. phoneno(电话后面的任何字母或数字都不应匹配)

我已经尝试过以下正则表达式 [^ \ w \ s]项目[^ \ w \ s] link

但是与电话的开头和结尾都没有空格的情况不符,因为电话的开头和结尾除了空格和字母外还需要1个字母

请提出其他满足上述情况的解决方案

You can find the regex here

1 个答案:

答案 0 :(得分:1)

您可以使用自定义单词边界,即\b(?<!\S) / (?!\S)的组合:

(?<![\w\s])phone(?![\w\s])

请参见regex demo和正则表达式图:

enter image description here

(?<![\w\s]) negative lookbehind模式与字符串中不立即带有单词或空格字符的位置匹配。

(?![\w\s]) negative lookahead模式与字符串中不立即带有单词或空格字符的位置匹配。