이것은, 지금 내 코드입니다파이썬 정규식 ~ 간단한 문제
import re
matches = re.search(r'^%s\s*\((.*?)\)'%"Hello", "Hello(Hi())")
print matches.group(1)
이의 안녕을 참조 후 그것은 괄호 안의 모든 것을 가져옵니다. 그래서 예를 들어 ,
Hello(hi) produces hi
나는 한 가지 문제가 있어요,
Hello(Hi()) produces Hi(and not Hi()
사람이 내가 정규식을 변경하여이 문제를 해결할 수있는 방법을 알고 있나요?
중첩 된 괄호가 일반 언어를 형성하지 않기 때문에 임의로 중첩 된 괄호와 일반 epxress를 일치시키는 것은 일반적으로 불가능합니다. 중첩에 대한 상한선을 보장 할 수 있습니까? –
최종 괄호가 어떻게 든 고유하다는 것을 보장 할 수 있다면 (예 : 줄 끝에서 공백 (및 닫힌 괄호)이 아닌 경우) 정규 표현식의 끝을 앵커 할 수 있습니다. – larsks
왜 라인 앵커의 시작으로 검색을 사용하고 있습니까? 이것은보다 느린 것을 제외하고는 match를 사용하는 것과 같습니다. –