2016-06-26 2 views
-4

나는 파이썬에서 정규 표현식을 사용하여 브래킷을 일치하도록 노력하고 있어요 :파이썬 정규식 재귀

(a (dcsd))() 

내가 그래서 새로운 라이브러리를 다운로드하지 못할 순간 내 바탕 화면에 인터넷이 필요 없다. regex 파이썬에서 재귀 기능이없는 경우이 일을 가장 좋은 방법은 무엇입니까?

더 명확하게, 그리고 읽을 수없는 특정 사용자의 경우, 내 컴퓨터에 인터넷이없고,이 질문을 게시하는 데 사용하는 일부 모바일 인터넷 만 있습니다. 나는 전능하신 구글이 별도의 라이브러리를 사용하여 찾은 유일한 대답으로 누군가가 일치하는 대괄호의 내용을 찾는 수동 알고리즘을 제안 할 수 있기를 기대하고있었습니다. 그 예를 들어 내가

+3

're' 라이브러리에서 재귀를 지원하지 않기 때문에 죄송합니다.'regex' 라이브러리가 필요합니다 .BTW, 인터넷없이 질문 하시겠습니까? – rock321987

+1

@ rock321987 : 좋은 지적입니다! – Jan

+0

정규식이없는 * 밸런스 *인지 확인하려면 다음을 수행하십시오.'''s.count ('(') == s.count (')')''' – wwii

답변

1

''A ''dcsd 당신은 정규식을 사용하여 브래킷을 일치시킬 수없는 결과를 필요에

,이 감정은 당신이받은 의견에 의해 반향된다.

정규 표현식 (정규 표현식)은 촘스키 유형 3 문법이지만 문자열에서 일치하는 토큰을 찾는 것은 촘스키 유형 2 문법 (또는 그 이상)이 필요합니다. 정규 표현식은 유한 오토마타와 동일한 기술력을 가지고 있습니다.

인용 부호, 괄호, 중괄호 등과 같은 일치하는 토큰을 찾으려면 Chomsky Type 2의 문법을 설명 할 수있는 계산 모델, 즉 푸시 다운 오토 마톤이 필요합니다. 이것을 "스택"이있는 것으로 인식하는 것이 좋습니다.