2013-12-07 5 views
0

현재 정규 표현식을보다 독점적으로 수정하려고합니다.정규식을 사용하여 필요한 데이터 추출

이것은 내가 지금까지 무엇을 가지고 : 어떤이가하는 것은

RE.Pattern = "(L\d{1}-\w{2}-\w{4,7}-DATA-\d{3,4})" 

정크 데이터의로드에서 문자열의 다음 예제를 추출합니다. 참고 이러한 문자열은 이 아니며 정적입니다. 숫자 값 등은 셀간에 변경됩니다. ,이 내가 필요하지

L1-R2-WRONGON-DATA-4725 
L2-SR-RUBBISH-DATA-472 

, 무엇을, 만약 아무것도 궁금 :

L2-R2-TEST-DATA-4724 
L1-SR-TESTING-DATA-472 
L1-R2-WORKING-DATA-472 

위의 문자열

그러나뿐만 아니라이 아니라 그것은 또한 아래의 데이터를 추출하는 것, 내가 원하는 무엇인가 이 일을 막을 내 정규식을 수정하기 위해 수행 할 수 있습니다 ...

정적으로 정의 할 수 있는지 궁금 해서요 테스트, 테스트 및 어떻게 든 원래 정규식 내에서 일하는 말? 그래서 내가 그들을 잡을 수 있고 맹공리와 농담은 아닙니다.

+0

참조 사용할 수 L\d{1}를 가질 필요하지 않습니다. "[제목에"태그 "가 포함되어 있어야합니까?] (http://meta.stackexchange.com/questions/19190/)"합의가 "아니오, 그렇지 않아야합니다"로 표시되어야합니다. –

답변

1

포함되지 않은 그룹 (?:을 사용하여 포함 할 단어를 구분할 수 있습니다. 또한 단순히 L\d

RE.Pattern = "(L\d-\w{2}-(?:TEST(?:ING)?|WORKING)-DATA-\d{3,4})" 

내가 제목을 편집 한 Live demo

+0

완벽한 감사합니다! – Chris

1

문자열이 바뀌겠다고 말했기 때문에 질문을 이해할 수 없지만 특정 사례를 정적으로 비교할 수 있는지 알고 싶습니다.

그냥 TEST, TESTINGWORKING을 일치 시키려면

, 당신은 (?:TEST|TESTING|WORKING)\w{4,7}을 대체 할 수 있으며, 그것은 분명히 WRONGON 또는 RUBBISH 일치하지 않습니다. 후자의 두 글자 인 을 제외하고 4-7 자의 단어를 찾으려면을 제외한 다른 단어와 일치해야합니다.

관련 문제