반응형
모든 정규식 일치의 색인을 찾으십니까?
따옴표로 묶인 문자열을 포함 할 수있는 문자열을 구문 분석하고 있습니다 (코드를 구문 분석하고 PLY를 피하려고합니다). 부분 문자열이 따옴표로 묶여 있는지 확인하고 싶습니다. 부분 문자열 인덱스가 있습니다. 내 초기 생각은 re를 사용하여 모든 일치 항목을 찾은 다음 그들이 나타내는 인덱스 범위를 파악하는 것이 었습니다.
re를 정규식과 함께 사용해야하는 것 같습니다 \"[^\"]+\"|'[^']+'
(현재 트리플 따옴표 및 그러한 문자열을 다루는 것을 피하고 있습니다). findall ()을 사용하면 일치하는 문자열 목록을 얻습니다. 다소 좋지만 인덱스가 필요합니다.
내 부분 문자열은처럼 간단 할 수 있으며이 c
특정 항목 c
이 실제로 인용 되었는지 여부를 알아 내야합니다 .
이것은 당신이 원하는 것입니다 : ( 소스 )
re.finditer(pattern, string[, flags])
문자열의 RE 패턴에 대해 겹치지 않는 모든 일치 항목에 대해 MatchObject 인스턴스를 생성하는 반복기를 반환합니다. 문자열은 왼쪽에서 오른쪽으로 스캔되며 찾은 순서대로 일치 항목이 반환됩니다. 빈 일치는 다른 일치의 시작을 건드리지 않는 한 결과에 포함됩니다.
그런 다음 MatchObjects에서 시작 및 끝 위치를 가져올 수 있습니다.
예 :
[(m.start(0), m.end(0)) for m in re.finditer(pattern, string)]
참고 URL : https://stackoverflow.com/questions/3519565/find-the-indexes-of-all-regex-matches
반응형
'code' 카테고리의 다른 글
WebView에서 사용자 지정 글꼴을 사용하는 방법 (0) | 2020.12.11 |
---|---|
텍스트를 깨지지 않게 만드시겠습니까? (0) | 2020.12.11 |
Visual Studio 프로젝트에 추가 라이브러리를 추가하는 방법은 무엇입니까? (0) | 2020.12.11 |
Unix ls 명령 : 옵션 사용시 전체 경로 표시 (0) | 2020.12.11 |
환경별로 config.action_controller.default_url_options = {: host = '#' '} 설정 방법 (0) | 2020.12.11 |