0

我希望它检测正整数和负整数,但如果它用于减法,我希望它不包括减号。

前任

  • "29 --24 + 4" 应该返回 29、-24 和 4

  • "29 -24 + 4" 应该返回 29、24,最后是 4

我目前使用这个表达式 "([0-9] *-)?[0-9]+" 来测试减号后面的字符是否不是数字。然后我可以用另一个正则表达式找到实际数字。上面的问题是,如果我的号码在字符串的开头,它就不起作用。像“-4 + 2”。这将输出 4 和 2。

编辑:语言是actionscript 3。

4

3 回答 3

0

一种使用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
于 2012-06-23T19:26:45.373 回答
0

动作脚本:

var pattern:RegExp = new RegExp("([+-]?\d+)","ig"); 
var element:Array = ut.match(pattern); 
于 2012-06-23T20:09:00.260 回答
0
(?:^|[-+]) *?(-?\d+)

http://rubular.com/r/E8WObP7HEW

于 2012-06-23T19:24:32.230 回答