아주 간단한 문자열에서 일치 항목을 가져 오려고합니다. 내 입력 문자열에서, 일반적인 패턴은 간다 : s(definitely a number)e(maybe some characters)s...
대조 정규식 비어있는 일치
예 입력 : s1e1s2e2s3es4e4
예상 일치 배열 : 나는 시도 [{1,1},{2,2},{3,''},{4,4}]
:
/s(\d)e([\d\:]+)?/g
정말 가까운 [{1,1},{2,2},{3},{4,4}]
를 얻을 수를하지만, 세 번째 그룹에 빈 문자열이 필요합니다.
나는 순진하게도 차라리 첫 번째 예에서 문자 클래스를 사용하는 대신 모든 문자와 일치하는 정규 표현식을 말할 것 나에게 [{1,''},{2,''},{3,''},{4,''}]
을 제공
/s(\d)e(.*?)?/g
을 시도합니다.
단순한 작업 솔루션 외에도 오해에 대한 설명도 훌륭합니다.
어떤 언어입니까? – Barmar
preg_match_all()을 사용하여 PHP에서 이것을 수행하지만 regex101.com에서 정규 표현식을 테스트하고 있습니다. –
'preg_match_all '을 사용하여 예상대로 작동하고,'g '수정자를 제거해야했습니다. – Barmar