형식이 지정된 문자열에서 정보를 읽습니다. 형식은 다음과 같습니다 : ":"나는 정규식으로 추출 할 수있는 데이터 사이정규식을 이스케이프 처리 된 문자로 구문 분석
"foo:bar:beer:123::lol"
다. a : 뒤에 다른 문자가 오는 경우 (예 : "::")이 데이터는 ""(빈 문자열)이어야합니다.
현재 나는이 정규식과 구문 분석하고있다 : ":"뿐만 아니라, 데이터 내에 존재(.*?)(:|$)
는 지금은 나의 마음에왔다. 그러니 탈출해야합니다. 예 :이 일치하도록
"foo:bar:beer:\::1337"
가 어떻게 내 정규 표현식을 변경할 수 있습니다 "\"데이터로도?
편집 : JavaScript를 프로그래밍 언어로 사용하고 있습니다. 복잡한 레귤레이션 표현에는 몇 가지 제한이있는 것 같습니다. 솔루션은 JavaScript에서도 작동해야합니다.
덕분에, 맥팔레인
출력 : [ "foo", "bar", "", "beer", "", "\ :", "", "1337", ""] – McFarlane
Ah , 권리. RegexBuddy는 불필요한 빈 일치를 생략 할만큼 "똑똑"하며, JavaScript와 Python (현재 테스트 중이 야)은 그렇지 않습니다. 내가 해결책을 찾을 수 있는지 보자. –
업데이트 된 예제가 예상대로 데이터와 일치하지만 [ "", ""]이 (가) 계속 반환됩니다. 귀하의 예제에서는 루프가 무한 루프가 될 것이므로 일치는 결코 null이 아니기 때문입니다. while 루프는 [subject.match (myregexp) .length-1] 반복을 제한했습니다. 정규 표현식이 굉장하기 때문에 나는 당신의 답을 정확하게 표시 할 것입니다. 당신의 노력에 많은 감사드립니다. – McFarlane