2012-06-23 94 views
0

我希望它能夠檢測正整數和負整數,但是如果它用於減法,我希望它不包含減號。編寫一個用於識別整數的正則表達式

  • 「29 --24 + 4」 應該返回29,-24和4

  • 「29 -24 + 4」 應該返回29,24和最後4

我目前使用這個表達式「([0-9] * - )?[0-9] +」來測試minus之後的字符是否不是數字。然後我可以用另一個正則表達式找到實際的數字。 上面的問題在於,如果我的編號位於字符串的起始位置,則不起作用。像「-4 + 2」一樣。將輸出4和2

編輯:語言ActionScript 3的

+0

所以使用兩個部分的正則表達式 - 一個用於第一位剩下的一個。 –

+0

想要嘗試一下,您可以使用此工具http://the-regex-coach.en.softonic.com/。這對試用和錯誤非常有用 – chaosguru

+0

您使用哪種語言?數字之間可以有什麼? – Kobi

回答

0

一個使用perlregexp方式:

內容的 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 
0

的ActionScript:

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