我正在编写一个小程序来进行一些计算。
基本上输入如下:
-91 10 -4 5
数字可以带有负号。它们也被一个空间隔开。 我需要一个正则表达式来过滤每个数字,包括符号(如果有的话)。
谢谢!
亚当
答案 0 :(得分:4)
:
$digit=explode(' ', $digitstring);
echo $digit[0]; // return -91
在PHP中你不需要正则表达式。
其他语言中也有类似的库,例如.Net。
string.split(new char[]{' '});
这是ruby中的一个例子:
@m=@digitstring.split(' ')
@my=@m[0]; //-91
答案 1 :(得分:1)
(-?\d+)\s?
您必须匹配n次并从匹配器中获取第一组。
伪代码:
matcher = "-91 10 -4 5".match(/(-\d+)\s?/)
while(matcher.hasMatch()) aNumber = match.group(1);
没有正则表达式会更容易:
for(x : "-91 10 -4 5".split()) parseInt(x);
答案 2 :(得分:1)
你可能想要:
(?<=\b)-?\d+(?=\b)
这意味着:
上面的非捕捉表达式是zero-width assertions,从技术上来说是一个积极的外观和积极的前瞻(分别)。