正则表达式查找可能包含单个字符串单词的字符串

时间:2015-11-13 01:28:54

标签: regex

我正在尝试编写一个匹配特定字符串的正则表达式,只要它不包含单个字符串字。

下面,我想回归"我认为一个很酷"但不是"一个"因为我只想要它,只要它不是它本身。

实施例。 一 我认为一个很酷< ---我想要这个"一个"

非常感谢任何帮助

2 个答案:

答案 0 :(得分:2)

对于正则表达式,字符串的开头通常用 ^ (克拉)表示,以 $ 结尾(美元符号)

许多正则表达式允许你做前进/后退的外观,所以基本上你想要找到一个不是单独的单词,而是一个字符串的一部分。

您正在寻找单词 one ,因此您可以在单词周围使用 \ b ,这通常是单词边界的语法。这有助于您过滤掉n 一个等搜索。

所以这里有适合你的正则表达式:

(?<!^)\bone\b(?!$)

这意味着在以下字符串中,只有粗体文本才匹配:

  

一个

     

一个

     所有

一个      

我不能

答案 1 :(得分:0)

如果我理解正确,您希望匹配包含您的单词的行,但不包含您的单词。

根据您的编程语言,可能有更好的方法来执行此操作,但您可以搜索正则表达式/(\w+\sone|one\s\w+)/以查找包含单词,然后是空格的行,然后"one",< em>或 "one",一个空格,然后是一个单词。所以这将符合这里的每一行:

one two three
this is one line
the number one

但这里没有一行:

one
lonely
something else

如果您希望它匹配"lonely"之类的内容,请删除空白转义序列(\s)。如果您不想在之前和/或之后匹配单词字符,请将\w替换为点.