2012-06-23 2 views
0

정수를 양수 및 음수로 검색하고 싶지만 뺄셈에 사용하는 경우 빼기를 포함하지 않길 바랍니다.정수를 식별하기위한 정규식 작성하기

예는

  • "29 --24 + 4", 29 돌려 -24 4

  • "29 -24 + 4"를 리턴한다 (29), (24) 및 최종적으로 4

나는 마이너스 뒤에있는 문자가 숫자가 아닌지 여부를 테스트하는이 표현 "([0-9] * -)? [0-9] +"를 사용합니다. 그런 다음 다른 정규 표현식을 사용하여 실제 숫자를 찾을 수 있습니다. 위의 문제는 내 번호가 문자열의 시작 부분에있는 경우 작동하지 않는다는 것입니다. "-4 + 2"처럼. 그 출력됩니다 4, 2

편집 : 언어는 액션 스크립트 3

+0

가 있으므로 정규 표현식은 두 부분으로 사용 - 첫 번째 숫자 하나를 다음과 같은 출력으로

perl script.pl 

나머지는 하나. –

+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 

실행이 같은 :

29 --24 + 4 = 29 -24 4 
29 -24 + 4 = 29 24 4 
-4 + 2 = -4 2 
0

액션 스크립트 :

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