我正在尝试编写一个匹配特定字符串的正则表达式,只要它不包含单个字符串字。
下面,我想回归"我认为一个很酷"但不是"一个"因为我只想要它,只要它不是它本身。
实施例。 一 我认为一个很酷< ---我想要这个"一个"
非常感谢任何帮助
答案 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
替换为点.
。