我搜索并尝试了所有可能的正则表达式解决方案,但我找不到任何答案。我正在寻找一个正则表达式,它匹配数字与它们之间的任何空格。
例如,以下句子:
12 Voorbeeld3 4Voorbeeld5 6 test 777
示例1 2 33 4test
因此正则表达式在第一句中仅匹配12
,6
和777
并且在第二句中只有2
和33
。所以每个数字都在空格之间。
我试过正则表达式来寻找空白。例如,(?<!\s[\d+])
但它只匹配单个数字,而不是多个数字。
有什么建议吗?
提前致谢。
答案 0 :(得分:4)
您正在寻找的RegExp如下:
\b(\d+)\b
以上RegExp将匹配两个word boundaries之间的任意数字,因此它将匹配:
"123 "
" 123"
" 123 "
使用g
修饰符匹配所有匹配项(所有数字)。您可以找到一个有效的示例HERE。
JavaScript示例:
var text = "12 Voorbeeld3 4Voorbeeld5 6 test 777",
exp = /\b(\d+)\b/g,
match;
while (match = exp.exec(text)) {
console.log(match[0]);
}
// Result:
> 12
> 6
> 777
答案 1 :(得分:2)
可以使用单词边界匹配由空格(或在字符串的开头/结尾)包围的数字组:
\b\d+\b
答案 2 :(得分:1)
您可以使用外观:
(?<=\s)\d+(?=\s)
或者,如果没有可用的外观,则使用捕获的组:
\s(\d+)\s
并使用捕获的组#1。
答案 3 :(得分:1)
您可以使用类似的内容:\b(\d+)\b
。这将检查您是否有一个或多个由空格包围的数字。可以看到正则表达式的样本here。