编写用于识别整数的正则表达式

时间:2012-06-23 19:01:17

标签: regex

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

实施例

  • “29 - 24 + 4”应返回29,-24和4

  • “29 -24 + 4”应该返回29,24,最后是4

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

编辑:语言是动作3。

3 个答案:

答案 0 :(得分:0)

(?:^|[-+]) *?(-?\d+)

http://rubular.com/r/E8WObP7HEW

答案 1 :(得分: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

答案 2 :(得分:0)

的ActionScript:

var pattern:RegExp = new RegExp("([+-]?\d+)","ig"); 
var element:Array = ut.match(pattern);