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

アクションスクリプト:

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 に答える
0

perlフレーバーを使用する 1 つの方法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 に答える