【发布时间】:2021-03-22 22:52:35
【问题描述】:
我发现了很多关于“匹配字符串中除单个单词之外的所有单词”的问题。但是,它们都不适用于短语(两个或多个单词组合)。假设我有一个字符串,如示例 (RegEx)。我想匹配单个单词 + 10 位数字的所有可能组合,除了某些组合/短语“nip + 10 位数字”(+ 表示简单的空格)。在我的示例中,我使用 \bnip\s*\d{10}\b 匹配“nip + 10 位数字”,但我想匹配所有 extept “nip + 10 位数字”。 hello 也不应该匹配,因为右侧缺少 10 位数字。如有任何帮助,我们将不胜感激。
示例:
hello
alpha 1111111111 # should be matched
allla 2322322321 # should be matched
nip 5260305006
pin 5260305006 # should be matched
nipp 5260305006 # should be matched
【问题讨论】:
-
喜欢这个?
\b(?!nip\b)\S+\s*\d{10}\bregex101.com/r/dJwTrJ/1 -
谢谢,这是我一直在寻找的解决方案。我使用了
\b(?!nip)\s*\d{10}\b,但它没有用。你能解释一下你\S+添加的目的是什么吗? -
在匹配可选的空白字符之前匹配 1 个或多个非空白字符。我已将其添加为带有解释的答案。