Regex 正则表达式匹配不属于单词的数字?

Regex 正则表达式匹配不属于单词的数字?,regex,Regex,我想得到一个正则表达式,其中我有一个数字的匹配,但这个数字不必是单词720p的一部分。 例如,给定字符串: A matter of time 78 A 720p 我只希望78号是匹配的。我需要的表达式是什么?简单地说 \b(\d+)\b 也就是说,只有组成单词的数字。如果您只想要不属于其他单词的数字,您可以使用: \b\d+\b \b表示单词的第一个或最后一个字符 如果您明确不希望数字后跟p,则可以使用: (?>\d+)(?!p) 这应该与后面没有字符“p”的任何数字匹配 我建议使

我想得到一个正则表达式,其中我有一个数字的匹配,但这个数字不必是单词720p的一部分。 例如,给定字符串:

A matter of time 78 A 720p
我只希望78号是匹配的。我需要的表达式是什么?

简单地说

\b(\d+)\b

也就是说,只有组成单词的数字。

如果您只想要不属于其他单词的数字,您可以使用:

\b\d+\b
\b表示单词的第一个或最后一个字符

如果您明确不希望数字后跟p,则可以使用:

(?>\d+)(?!p)
这应该与后面没有字符“p”的任何数字匹配


我建议使用来构建和理解正则表达式。

请查看所用标记的说明。对于一些正则表达式引擎来说,这很容易,而对于其他一些引擎来说,这很难。答案似乎是假设你想特别针对720p的情况做些什么,但我不确定。您想只匹配整个单词的数字,而不是附加字符“触摸”这个数字?在这个场景中,您认为1是个数字吗?1e4怎么样?完全忘记了\b的存在,这就是为什么我的答案是\s+|^。对你的答案投了赞成票,删除了我的。这是我希望看到的答案。OP最感兴趣的是单词边界。您不需要捕获组,因为\b基本上是非捕获的,即零宽度,因此整个匹配与组1相同。事实上,这个答案离投票结果差一点。