2011-07-03 2 views
0

마지막 Regex 문제 하나 내가 도움이 필요해. 내가 뭘하려는 건 여전히 정규식을 단항 기호를 인식하는 동안 수학 표현을 구문 분석 할 수있을 것입니다.단항 기호 매칭 및 Regex 수학 구문 분석

myVar = -5 
myVar = +5 

정규식이 제대로 정수로 모두 -5 +5를 식별이이 개 시나리오에서 잘 작동

[\+\-]?[0-9]+ 

: 나는 정수를 구문 분석하려면 다음을 사용하고 있습니다. 이것은, 그러나, 정확하게 일치됩니다

myVar = 7-5 

: : 이제

myVar = 7*-5 

이 정규식은 2 개 정수를 식별하는 7-5 시나리오에서 무엇을하고 있는지, 나는이 같은 시나리오가 있다면 내 문제입니다 7 및 -5. 실제로 내가 원하는 것은 정수 (7), 마이너스 기호 (-) 및 다른 정수 (5)를 식별 할 수 있도록하는 것입니다. 어떤 정규식 패턴이 필요합니까?

미리 감사드립니다. NET Regex입니다.

답변

-1

사용이 :

((\d)+[\+\-\*/])* 

그런 다음 원하는 결과를 얻을을 MatchCollection 및 그룹을 사용합니다. 다음과 같은 문제가 입력된다고 가정

0

한정된다

  1. 1 이진 연산자의 최대 (*, /, +, -)
  2. 2 단항 연산자의 최대 (+, -)
  3. 모든 숫자는 정수
  4. 없음 공백은

그런 다음 다음과 같은 정규 표현식이 작동됩니다
(([\+\-]?[\d]+)([\+\-\*\/]))*([\+\-]?[\d]+)
(결과의 첫 번째 그룹은 무시).

는 괄호로 사이 \s* 추가 공간을 고려할 경우
(([\+\-]?[\d]+)\s*([\+\-\*\/]))*\s*([\+\-]?[\d]+)

(그룹 2-4) 실시 예 입출력 :
Input \2 \3 \4 -5 -5 +5 +5 7-5 7 - 5 7*-5 7 * -5 -7*-5 -7 * -5