2016-09-28 3 views
0

어도비 자바 스크립트에서 정규 표현식을 사용하여 그림 제목 블록에 단어 열을 찾습니다. THIS TESTING SB FORRegex - 정규 표현식 일치 문자열

1 20.09.16 CHANGES : 다음 다음 번호 (1) 기간 즉 다양한 수의 이니셜

var re = new RegExp(1+"\\s\\d{1,2}\\.\\d{1,2}\\.\\d{2,4}\\s\\w+(?:\\s+\\w+){1,9}\\s([A-Z]{2,7})\\s([A-Z]{2,7})\\s([A-Z]{2,7})\\s([A-Z]{2,7})"); 

도면 표제 블록 예컨대 4 개 세트로 시작하는 다음을 갖는다 SB BW CR 건축 MM SB BW GM

승인

0 29.07.16 정규식 결과 FOR CONSTRUCTION MM

이다

SB BW GM는이 테스트를 위해 1 20.09.16 변경 사항은 SB SB는

나는이 테스트에 대한

1 20.09.16 CHAINAGES로 정규 표현식이 필요 SB SB BW CR

사람이 찾는 방법을 조언 해 줄 수 있습니다 결과에 표시된대로 임의의 텍스트가 아닌 1로 시작하는 완전 일치

도움을 주셔서 감사합니다.

참고 : 수정 정규식 아래 내가 변수에 텍스트 정규 표현식의 시작 부분에 1을 교체해야

var re = new RegExp(/^1\s\d{1,2}\.\d{1,2}\.\d{2,4}\s\w+(?:\s+\w+){1,10}\s([A-Z]{2,2})\s([A-Z]{2,2})\s([A-Z]{2,2})\s([A-Z]{2,2})$/g); 

작동합니다.

정규식은 먼저 ^과 다음 정규 표현식

var re = new RegExp("//^"+firstWord+"\\s\\d{1,2}\\.\\d{1,2}\\.\\d{2,4}\\s\\w+(?:\\s+\\w+){1,9}\\s([A-Z]{2,4})\\s([A-Z]{2,4})\\s([A-Z]{2,4})\\s([A-Z]{2,4})$//g"); 

정규식 사람이 정규식과 자바 변수를 결합하는 방법을 조언 해 줄 수 있습니다, 작동하지 않는 자바 스크립트 변수를 시작? 당신의 결과가 그런 식으로 밝혀졌다 이유

+0

I 그림 제목 블록이 저장되는 방법을 몰라도 결과가 "고장"인 이유를 이해하지 못합니다. 그러나 '1'로 시작하는 내용과 일치 시키려면 정규식의 시작 부분에 '1'을 넣어야합니다. –

+0

질문을 편집하여 정규식 사용법을 보여주십시오. 또한 보여준 결과에는 샘플 입력에 전혀없는 문자 ("CS")가 포함되어있어 의미가 없습니다. 샘플 입력 및 결과를 다시 확인하십시오. – nnnnnn

+0

나는 지금 일하고있는 수정 된 정규 표현식으로 질문을 편집했다. 밑줄로 정규식 분할에 대한 도움이 필요하다 - 도움을 청한다. – JoJo

답변

1

는 잘 모르겠지만, 그냥 문자열을 얻으려면

var str = '1 20.09.16 CHANGES FOR THIS TESTING SB SB BW CR 0 29.07.16 APPROVED FOR CONSTRUCTION MM SB BW GM' 

var result = str.match(/1\s\d{1,2}\.\d{1,2}\.\d{2,4}\s\w+(?:\s+\w+){1,9}\s([A-Z]{2,7})\s([A-Z]{2,7})\s([A-Z]{2,7})\s([A-Z]{2,7})/g) 

이 반환

[ '1 20.09.16 CHANGES FOR THIS TESTING SB SB BW CR' ]

을 할 경우, 당신은 할 필요가 result[0]

+0

정규 표현식 var re = new RegExp (/^1 \ s \ d {1,2 } \ d {1,2} \. \ d {2,4} \ s \ w + (? : \ s + \ w +) {1,9} \ s ([AZ] {2,7}) \ s ([AZ] {2,7}) \ s ([AZ] {2,7}) \ s ([AZ] {2,7}) $/g); 결과 : 1 20.09.16이 테스트 SB SB의 마지막 두 세트가 누락되었습니다. 이유는 무엇입니까? – JoJo

+0

'$'는 문자열의 끝이 아니라 줄의 끝을 의미하며, 여러 줄로 된 문자열 인 경우 일치하지 않을 수도 있습니다. 대신'\ z'를 사용해보십시오. – davidhu2000

+0

도움을 주셔서 감사합니다 올바른 정규식 결과로 질문을 편집했습니다 밑줄에 정규식 분할 도움이 필요 - 당신을 도울 수 있기를 바랍니다. – JoJo