只查找数学等式中的整数...
5 + 5.5 + 6 / 2.0
我想找到5和6而不是5.5或2.0 要查找小数,我使用\ d +(。\ d {1,}}
我尝试了\ b \ d + \ b但找到了所有数字
答案 0 :(得分:3)
如果正则表达式引擎支持,则可以使用负向lookbehind和lookahead。正则表达式为:
(?<!\.)\d+(?!\.)
lookbehind确保数字字符串不以.
开头,因此.5
之类的内容不会匹配。前瞻确保数字字符串不会以.
结尾,因此5.
将不会匹配。
答案 1 :(得分:0)
您可以尝试查找没有“。”的所有数字。在前面,之后有空格,如下:
[^\.]([0-9]+)\s
答案 2 :(得分:0)
可以试试这个:
/(?:^|[^\.])(\d+)(?:\s+|$)/
确保数字不以点开头,或者是字符串的开头,并确保数字后跟空格或字符串的结尾。
这是一个实例中的PHP示例:
preg_match_all('/(?:^|[^\.])(\d+)(?:\s+|$)/', '5 + 5.5 + 6 / 2.0 + 33 * 16', $matches);
var_dump($matches);
/* Var Dump:
array (size=2)
0 =>
array (size=4)
0 => string '5 ' (length=2)
1 => string ' 6 ' (length=3)
2 => string ' 33 ' (length=4)
3 => string ' 16' (length=3)
1 =>
array (size=4)
0 => string '5' (length=1)
1 => string '6' (length=1)
2 => string '33' (length=2)
3 => string '16' (length=2)
*/
所以捕获的是5,6,33和16(我添加了一些较长的数字以确保它有效)