>백엔드 개발 >파이썬 튜토리얼 >Python 문자열에서 하위 문자열의 모든 발생을 어떻게 찾을 수 있습니까?

Python 문자열에서 하위 문자열의 모든 발생을 어떻게 찾을 수 있습니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-22 00:53:38883검색

How Can I Find All Occurrences of a Substring in a Python String?

하위 문자열의 모든 발생 찾기

Python은 string.find() 및 string.rfind( 함수를 포함하여 광범위한 문자열 조작 기능을 제공합니다. ) 이는 각각 처음과 끝에서 부분 문자열이 처음 나타나는 것을 검색합니다. 그러나 하위 문자열의 모든 항목을 찾으려고 할 때 이러한 함수는 부족합니다.

해결책: 정규 표현식 활용

내장된 "문자열이 없는 경우 .find_all()" 함수를 사용하면 정규식의 강력한 기능을 활용할 수 있습니다.

import re

text = "test test test test"

# Find all occurrences of "test"
matches = [m.start() for m in re.finditer('test', text)]

# Print the found indexes
print(matches)  # [0, 5, 10, 15]

이 솔루션은 반복됩니다. 발견된 각 항목에 대해 일치 개체를 생성하는 생성기인 re.finditer('test', text)의 결과에 대해 설명합니다. 각 일치 항목에서 start() 속성을 추출하여 원본 문자열에서 하위 문자열의 위치를 ​​나타내는 인덱스 목록을 얻습니다.

겹치는 일치 항목 처리

If 겹치는 일치가 허용되면 정규 구문에서 예측 어설션을 사용하여 캡처할 수 있습니다. 표현식:

matches = [m.start() for m in re.finditer('(?=tt)', 'ttt')]
# [0, 1]

역방향 검색 수행

겹침 없이 모두 역방향 찾기를 수행하려면 긍정 및 부정 예측의 조합을 사용할 수 있습니다.

search = 'tt'
matches = [m.start() for m in re.finditer('(?=%s)(?!.{1,%d}%s)' % (search, len(search)-1, search), 'ttt')]
# [1]

정규 표현식을 활용하면 Python에서 모든 하위 문자열 발생을 효과적으로 식별하고 검색할 수 있습니다. 문자열입니다.

위 내용은 Python 문자열에서 하위 문자열의 모든 발생을 어떻게 찾을 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.