2013-07-02 6 views
1

C# 정규 표현식에 대한 도움이 필요합니다. 기본적으로 저는 공항 METAR를 친숙한 형식으로 다시 쓰고 있습니다. METAR에 익숙하지 않은 사람들을 위해 Regex는 문자열의 일부만 가져옵니다. 최대 길이가있는 숫자 만 사용하십시오.

, 여기에 예입니다 : KLAX 020353Z 24004KT 9SM FEW150 SCT250 18분의 21 A2987 RMK AO2 SLP112 T02060178 $

기본적으로 내가 뭘 원하는에 FEW150를 다시 작성입니다 "150에서 몇 구름"을 읽으십시오. 나는 (이 분명히 작동하지 않습니다) 정규식 표현에서 큰 아니에요, 여기에 내가 가진 무엇 :

modify = Regex.Replace(modify, "^FEW[0-9]{3}$", "few clouds at $1"); 

는 사람이 나에게 맞는 패턴을 찾을 도와 드릴까요?

답변

3

당신은

^

modify = Regex.Replace(modify, "FEW([0-9]{3})", "few clouds at $1"); 
가까운 문자열의 시작을 표시하고 유일한 문자열을 $ 문자열의 끝을 표시하고 그래서 대상 문자열이 middile에 있기 때문에 그것과 일치 할 수 없습니다 및 없었다

$1

은 .. 첫 번째 캡처 그룹을 참조하지만이 없었다 귀하의 경우 어떤


이 방법으로도 수행 할 수 있습니다.

modify.Substring(modify.IndexOf("FEW"),modify.IndexOf("FEW")+5); 
+0

예. 예. '^'와'$'는 string의 'beginning'과 'end'를 의미합니다. 그리고 'FEW ...'부분은 중간에 있습니다. –

+0

아름다운! 나는 5 분 안에이 대답을 받아 들일 것이다. :) – Spencer

관련 문제