복붙노트

[PYTHON] 모든 정규식 일치의 색인을 찾으십니까?

PYTHON

모든 정규식 일치의 색인을 찾으십니까?

나는 그 안에 인용 된 문자열을 여러 개 가질 수있는 문자열을 파싱합니다. (코드를 파싱하고 PLY를 피하려고합니다.) 하위 문자열이 인용되었는지 알아보고 하위 문자열 색인을 갖고 싶습니다. 필자의 초기 생각은 re를 사용하여 모든 일치 항목을 찾은 다음 이들이 나타내는 인덱스의 범위를 파악하는 것이 었습니다.

그것은 내가 정규식으로 다시 사용해야하는 것처럼 보입니다. "[^ \"] + \ "| '[^'] + '(나는 현재 트리플 인용 부호와 같은 문자열을 다루지 않습니다.) findall () 일치하는 문자열 목록을 얻습니다. 다소 좋지만 인덱스가 필요합니다.

내 하위 문자열은 c와 같이 단순 할 수 있으며이 특정 c가 실제로 인용되는지 여부를 알아야합니다.

해결법

  1. ==============================

    1.이것이 당신이 원하는 것입니다 : (출처)

    이것이 당신이 원하는 것입니다 : (출처)

    그런 다음 MatchObject에서 시작 및 끝 위치를 가져올 수 있습니다.

    e.

    [(m.start(0), m.end(0)) for m in re.finditer(pattern, string)]
    
  2. from https://stackoverflow.com/questions/3519565/find-the-indexes-of-all-regex-matches by cc-by-sa and MIT license