2012-08-23 10 views
0

"aaa" 코드를 본 후에 정규식을 작성해야이 정규식은 전체 줄이 아닌 6 자리 코드 만 인쇄해야합니다. 한 줄에 6 자리 코드가 하나만 있으며, 이후는 "aaa"입니다.다른 도구없이 정규식을 사용하여 일치 패턴을 추출하는 방법

sed, awk, grep 등등을 사용할 수 없습니다. 내 애플리케이션은 정규식 만 허용합니다.

예 :

x aaa y z 123456   returns 123456 

aaa x 654321 y z   returns 654321 

나는, 역 참조와 [\d]{6}

하지만
(.*)(aaa)(.*)[\d]{6}((?(2)[\d]{6}|.+) 

를 반복하는 방법을 확실하지이 정규식을 시도했지만 전체 라인을 인쇄합니다.

제안 사항?

(?<=aaa.+?)\d{6} 

이 수단 : 당신은 또한 다른 정규식으로 역 참조를 사용할 수

+0

한 줄에 6 자리 코드가 하나만 있습니다 ... "\ d {6} "? – hovanessyan

+0

'x 123456 y'.match (/ \ b \ d {6} \ b /); // [ "123456"] –

답변

0

당신은 (\1와) 첫 번째 그룹을 반환 한 후

aaa.+?(\d{6}) 

와 같은 뭔가를 할 수 aaa와 다른 문자 뒤에 처음 6 자리를 원한다고 가정합니다. 불행히도 많은 언어가 가변 길이 역 참조를 지원하지 않으므로 첫 번째 코드와 함께 갈 것입니다.

+0

내가 빠진 것이 있습니까? http://regexr.com?31u0j –

+0

사이트를 볼 수 없으므로 rubular에 넣으시겠습니까? – Gabber

+0

많은 분들께 감사드립니다. 그 코드를 공부하겠습니다 :-) –

관련 문제