2010-03-23 6 views
5

XXX999999v99 (X는 임의의 알파 문자이고 v는 임의의 숫자 문자이고 v는 리터럴 v 문자 임) 형식의 문자열이 주어지면 어떻게 정규 표현식을 얻을 수 있습니까? v 뒤에 나오는 숫자. 지금까지 'v \ d \ d'에 v가 포함되어 있지만 이상적으로는 숫자 부분 만 사용하고 싶습니다.RegEx - 텍스트 문자 다음의 모든 숫자를 가져옵니다.

누구에게도 일치시킬 문자열을 지정하고 정규식을 생성 할 수있는 도구에 대해 알고 있습니까? 기존 정규 표현식을 수정하는 것은 하나의 문제이지만 처음부터 시작하는 것은 고통 스럽다.

편집 :이 질문을 다시 읽습니다. 과제가 숙제로 인식됩니다. 그러나 나는 그렇지 않다는 것을 확신 할 수 있습니다. 일치시키려는 문자열은 제품 코드에 추가 된 제품 버전을 나타냅니다. 현재 코드는 모든 종류의 부분 문자열 표현식을 사용하여 버전 부분을 검색합니다.

답변

4

당신이 시도 할 수 :

v(\d+)$ 
  • v는 : 하나의 자리
  • \d+을 : 문자 그대로의 V
  • \d에게 맞는 하나 또는 그 이상의 숫자를.
  • () : 또한 기억 그룹 사용할 수있는 일치하는 부분 나중에
  • $ : 라인 앵커의 끝 당신은 캡처 그룹을 사용할 필요가
+0

같은 일부 유료 프로그램도 있습니다. 이것을 제거하고 숫자 부분 만 반환 할 수 있습니까? 답장을 보내 주셔서 감사합니다. – Simon

+0

@ 시몬 : 정규식이 일치 항목을 찾으면 첫 번째 그룹에는 항상 정규식과 일치하는 전체 문자열이 포함됩니다. 캡처 된 부분 만 가져와야하는 경우 두 번째 그룹을 확인해야합니다. –

+0

Duh, 방금 실현 - 정규식에서 V 문자를 제거! – Simon

2

:

Regex.Match("XXX999999v99",@"v(\d+)").Groups[1].Value 
+0

원래 문자열에 일치하는 항목이 없으면 Groups [1]에 액세스 할 때이 코드가 예외를 throw합니다. –

1

을 정규 표현식 테스트를위한 훌륭한 무료 도구가 있습니다.

시도 : regex powertoy

나 : RegExr

나는이 경기가 V 문자를 포함 할 때 regex buddy

+0

저는 RegExr 온라인 버전을 사용하고 있습니다.하지만 함께 가기가 어렵습니다. – Simon

관련 문제