我正在写一个小程序来做一些计算。
基本上输入如下:
-91 10 -4 5数字可以有负号,也可以没有负号。它们之间也用空格隔开。我需要一个正则表达式来过滤每个数字,包括符号,如果有一个。
谢谢!
亚当
发布于 2009-10-03 06:26:04
在PHP中:
$digit=explode(' ', $digitstring);
echo $digit[0]; // return -91在PHP中,您不需要使用正则表达式。
在其他语言中也有类似库,例如.Net。
string.split(new char[]{' '});下面是一个用ruby写的例子:
@m=@digitstring.split(' ')
@my=@m[0]; //-91发布于 2009-10-03 06:42:03
(-?\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);发布于 2009-10-03 07:01:41
您可能需要:
(?<=\b)-?\d+(?=\b)这意味着:
上面的非捕获表达式是zero-width assertions,技术上分别是正后视和正前视。
https://stackoverflow.com/questions/1512974
复制相似问题