일치하는 괄호를 포함 할 가능성이있는 문자열에서 일치하지 않는 중괄호 (여는 또는 닫음)를 찾을 수있는 정규 표현식이 필요합니다.일치하지 않는 괄호를 찾으려면 Regex
여기에 stackoverflow에 질문이 있지만 정규식 기반 솔루션을 찾지 못했습니다.
나는 부정적 선견지명을 사용하여 일치하지 않는 열린 중괄호 \((?![^)]+\))
을 찾은 정규식을 생각해 냈습니다. 그러나 필적 할 수없는 닫는 중괄호에 필요한 반대 구절을 찾아 낼 수 없습니다.
편집 : 의도 한대로 작동하지 않습니다 타의 추종을 불허하는 열린 중괄호를 찾을 수 위의 정규식. 예 : 그것은 열려있는 여러 중괄호가 하나의 닫는 중괄호 뒤에되는 경우를 (또한 코멘트 참조)
다음
내가 Rubular 나에 대한 실험을 봤는데 내 테스트 문자열 그리워합니다 :
one) ((two) (three) four) (five)))
참고 문자열에는 따옴표, 대시 등 모든 유형의 문자가 포함될 수 있습니다.
일반적인 경우에는 작동하는 정규식 기반 솔루션이 없기 때문입니다. 그것은 당신이 [regex로 XML을 파싱 할 수 없다] (http://stackoverflow.com/a/1732454/13) (다시 일반적인 경우)와 같은 이유입니다. –
정말 정규 표현식이어야합니까? 왜 'string.each_char {| c | ...}'? –
엄격한 regexp 언어는 할 수 없습니다 .. 그러나 PCRE와 같은 일반적인 확장 정규 표현식은 가능할 수 있습니다. http://stackoverflow.com/questions/562606/regex-for-checking-if-a-string-has-mismatched- 괄호 – Kaganar