我希望它检测正整数和负整数,但如果它用于减法,我希望它不包括减号。
前任
"29 --24 + 4" 应该返回 29、-24 和 4
"29 -24 + 4" 应该返回 29、24,最后是 4
我目前使用这个表达式 "([0-9] *-)?[0-9]+" 来测试减号后面的字符是否不是数字。然后我可以用另一个正则表达式找到实际数字。上面的问题是,如果我的号码在字符串的开头,它就不起作用。像“-4 + 2”。这将输出 4 和 2。
编辑:语言是actionscript 3。
我希望它检测正整数和负整数,但如果它用于减法,我希望它不包括减号。
前任
"29 --24 + 4" 应该返回 29、-24 和 4
"29 -24 + 4" 应该返回 29、24,最后是 4
我目前使用这个表达式 "([0-9] *-)?[0-9]+" 来测试减号后面的字符是否不是数字。然后我可以用另一个正则表达式找到实际数字。上面的问题是,如果我的号码在字符串的开头,它就不起作用。像“-4 + 2”。这将输出 4 和 2。
编辑:语言是actionscript 3。
一种使用perl
风味的方法regexp
:
内容script.pl
:
use warnings;
use strict;
while ( <DATA> ) {
chomp;
printf qq|%s = |, $_;
printf qq|%s |, $1 while m/(-?\d+)\s*(?:-|\+|$)/g;
print qq|\n|;
}
__DATA__
29 --24 + 4
29 -24 + 4
-4 + 2
像这样运行它:
perl script.pl
具有以下输出:
29 --24 + 4 = 29 -24 4
29 -24 + 4 = 29 24 4
-4 + 2 = -4 2
动作脚本:
var pattern:RegExp = new RegExp("([+-]?\d+)","ig");
var element:Array = ut.match(pattern);
(?:^|[-+]) *?(-?\d+)