제가 작업중인 프로젝트에서 다음 정규 표현식을 생성했으나 제대로 작동하지만 호기심이 궁금합니다. "압축/축소"할 수있는 경우 :도움말 반복되는 서브 패턴을 사용하여 정규식 단축하기
/[(]PRD[)].+;.+;.*;.+;.+;.*;.*;.*;/
정규 표현식에 항상
제가 작업중인 프로젝트에서 다음 정규 표현식을 생성했으나 제대로 작동하지만 호기심이 궁금합니다. "압축/축소"할 수있는 경우 :도움말 반복되는 서브 패턴을 사용하여 정규식 단축하기
/[(]PRD[)].+;.+;.*;.+;.+;.*;.*;.*;/
정규 표현식에 항상
우선, 단일 문자 블록 그냥 멀리 갈 수 ... 나에게 부두처럼 보였다있다 :
/\(PRD\).+;.+;.*;.+;.+;.*;.*;.*;/
다음, Y ou는 관련 항목을 함께 그룹화 할 수 있습니다.
/\(PRD\)(.+;){2}.*;(.+;){2}(.*;){3}/
실제로 텍스트를 길게 만듭니다.
예, 길지만 50 % 이상 우수합니다. ; P – Ash
그리고 '.' 매회 '[^;]가되어야합니다. 그러면 수정 된 원본보다 15 자 짧은 등 재 작성이 훨씬 더 짧아집니다. –
원본에 캡처가 없으므로 '(...)'시퀀스가 '(? : ...)'(캡처되지 않은 그룹)이어야한다는 인수가있을 수도 있습니다. 원작이 그룹화를 원한다는 또 다른 주장이 있지만 ';'로 나눌수록 더 좋은지 아닌지에 대한 질문이있을 것입니다. –
/\(PRD\).+;.+;.*;.+;.+;(.*;){3}/
나는 많은 이득을 얻고 똑같은 규칙에 도달 할 것이라고 생각하지 않습니다. 당신이 모든 텍스트를 ";" 선택, 당신은 할 수 :
/\(PRD\)(.*;){8}/
/\(PRD\)(.+;.+;.*;){2}(.*;){2}/
는보다 짧은
/\(PRD\)((.+;){2}.*;){2}(.*;){2}/
하지만 틀림없이 덜 굉장합니다. 둘 다 성공적으로 (문자 클래스 변경으로 인하여 만)
/[(]PRD[)].+;.+;.*;.+;.+;.*;.*;.*;/
보다 짧습니다.
또는 당신도 가 같은 규칙을 얻을 수있는 가장 짧은 될 수있는
/\(PRD\)(.+;.+;.*;){2}.*;.*;/
로 갈 수있다.
+1 같은 규칙을 가진 가장 짧은 - 이제 규칙을 조금 구부리면 ... :) – eglasius
찾고있는 정확한 패턴은 무엇입니까? 예 : 경기 결과 집합은 어떻게 생겼습니까? –
그래, 문제가 "이 정규식과 정확히 일치하는 항목"이라면 압축하기가 어렵습니다. John 's는 좀 더 우아한 접근법에 능숙했습니다. 일치하는 콘텐츠의 일부 샘플은 많은 도움이됩니다. – danieltalsky