루비 사용 Regexp 객체 (또는 유효한 정규 표현식을 나타내는 문자열)를 가져 와서 특정 부분을 조작 할 수 있도록 토큰 화하고 싶습니다.정규식 Tokenize (lex-parse?) 정규식
regex = /var (\w+) = '([^']+)';/
parts = ["foo","bar"]
을하고 배열에서 문자와 각 캡처를 대체하는 대체 문자열 생성 :
특히,이 같은 정규식/문자열을하고 싶습니다
"var foo = 'bar';"
을 정규식 파싱에 대한 순진한 정규식 기반 접근법 : 예 :
i = -1
result = regex.source.gsub(/\([^)]+\)/){ parts[i+=1] }
... 중첩 된 캡처 그룹 또는 비 캡처 그룹 또는 문자 클래스 안에 괄호가있는 정규식과 같은. 따라서 정규 표현식을 의미 적으로 유효한 조각으로 적절하게 나누려는 나의 바람.
Ruby에서 사용할 수있는 기존 Regex 파서가 있습니까? regexes와 완벽하게 일치하는 알려진 정규 표현식 (horror of horror)이 있습니까? 내가 찾지 못한 보석이 있니?
이 질문의 동기는 this question에 대한 깨끗하고 간단한 대답을 찾는 것입니다.
흥미로운 질문입니다. 정규 표현식 자체가 정규 표현식입니까? –
@ acheong87 임의로 중첩 된 캡처 그룹이 주어 졌을 때 나는 생각하지 않습니다. 그러나 정규 언어에 대한 형식주의에 대한 지식은 매우 제한적입니다. – Phrogz
정규식 변수 보간을 살펴 보았습니까? – iain