Python의 문자열에서 부분 문자열 추출

Vaibhav Vaibhav 2023년10월10일
  1. Python에서 문자열 슬라이싱을 사용하여 부분 문자열 추출
  2. Python에서slice()생성자를 사용하여 부분 문자열 추출
  3. Python에서 정규식을 사용하여 부분 문자열 추출
Python의 문자열에서 부분 문자열 추출

문자열은 일련의 문자입니다. 우리는 소프트웨어 개발을하든 경쟁 프로그래밍을하든 상관없이 항상 문자열을 다룹니다. 때때로 프로그램을 작성하는 동안 문자열의 하위 부분에 액세스해야합니다. 이러한 하위 부분은 일반적으로 하위 문자열로 알려져 있습니다. 부분 문자열은 문자열의 부분 집합입니다.

Python에서는 문자열 슬라이싱이나 정규식 또는 정규식을 사용하여이 작업을 쉽게 수행 할 수 있습니다.

Python에서 문자열 슬라이싱을 사용하여 부분 문자열 추출

Python에서 문자열 슬라이싱을 수행하는 몇 가지 방법이 있습니다. 인덱싱은 가장 기본적이고 가장 일반적으로 사용되는 방법입니다. 다음 코드를 참조하십시오.

myString = "Mississippi"
print(myString[:])  # Line 1
print(myString[4:])  # Line 2
print(myString[:8])  # Line 3
print(myString[2:7])  # Line 4
print(myString[4:-1])  # Line 5
print(myString[-6:-1])  # Line 6

출력:

Mississippi
issippi
Mississi
ssiss
issipp
ssipp

위의 코드에서 문자열을 저장하는 변수 끝에[]대괄호를 추가합니다. 인덱싱에이 표기법을 사용합니다. 이 대괄호 안에 인덱스를 나타내는 정수 값을 추가합니다.

이것은 대괄호[start : stop : step](콜론 (:)으로 구분)의 형식입니다.

기본적으로start의 값은0또는 첫 번째 색인이고stop의 값은 마지막 색인이고step의 값은1입니다. start는 하위 문자열의 시작 색인을 나타내고stop은 하위 문자열의 끝 색인을 나타내며step은 각 색인 이후에 증가하는 데 사용할 값을 나타냅니다.

반환 된 하위 문자열은 실제로 색인화가 Python에서0에서 시작하기 때문에start색인과stop - 1색인 사이에 있습니다. 따라서Mississippi에서Miss를 검색하려면[0 : 4]를 사용해야합니다.

대괄호는 비워 둘 수 없습니다. 기본값을 사용하려면 참조하는 매개 변수를 나타 내기 위해 필요한 양의 콜론:을 공백과 함께 추가해야합니다. 더 나은 이해를 위해 다음 목록을 참조하십시오.

  • [:] - > 전체 문자열을 반환합니다.
  • [4 : ] - > 색인4부터 마지막 ​​색인까지 하위 문자열을 반환합니다.
  • [ : 8] - > 색인0부터 색인7까지 하위 문자열을 반환합니다.
  • [2 : 7] - > 색인2부터 색인6까지 하위 문자열을 반환합니다.
  • [4 : -1] - > 색인4부터 두 번째 마지막 색인까지 하위 문자열을 반환합니다. -1을 사용하여 Python에서 마지막 색인을 정의 할 수 있습니다.
  • [-6 : -1] - > 끝에서 여섯 번째 색인부터 두 번째 마지막 색인까지의 하위 문자열을 반환합니다.

Python에서slice()생성자를 사용하여 부분 문자열 추출

대괄호 안의 인덱스를 언급하는 대신slice()생성자를 사용하여slice객체를 생성하여 문자열 또는 목록 또는 튜플과 같은 다른 시퀀스를 분할 할 수 있습니다.

slice(start, stop, step)생성자는start,stopstep의 세 가지 매개 변수를 승인합니다. 위에서 설명한 것과 정확히 동일합니다.

슬라이스의 작동 방식은 괄호 표기법과 비교하여 약간 다릅니다. 슬라이스 객체는myString[<'slice' object>]와 같이 문자열 변수 괄호 안에 배치됩니다.

x와 같은 단일 정수 값이slice()생성자에 제공되고 인덱스 슬라이싱에 추가로 사용되는 경우 인덱스0에서 시작하여 인덱스x - 1까지 하위 문자열이 검색됩니다. 다음 코드를 참조하십시오.

myString = "Mississippi"
slice1 = slice(3)
slice2 = slice(4)
slice3 = slice(0, 8)
slice4 = slice(2, 7)
slice5 = slice(4, -1)
slice6 = slice(-6, -1)
print(myString[slice1])
print(myString[slice2])
print(myString[slice3])
print(myString[slice4])
print(myString[slice5])
print(myString[slice6])

출력:

Mis
Miss
Mississi
ssiss
issipp
ssipp

수신 된 출력은 자명합니다. 색인은 대괄호 표기법에 정의 된 것과 동일한 규칙을 따릅니다.

Python에서 정규식을 사용하여 부분 문자열 추출

정규 표현식의 경우 Python의 내장 패키지re를 사용합니다.

import re

string = "123AAAMississippiZZZ123"

try:
    found = re.search("AAA(.+?)ZZZ", string).group(1)
    print(found)
except AttributeError:
    pass

출력:

Mississippi

위 코드에서search()함수는 전달 된 문자열에서 인수로 제공된 패턴의 첫 번째 위치를 검색합니다. Match개체를 반환합니다. Match개체에는 하위 문자열의span또는 하위 문자열의 시작 및 끝 색인과 같은 출력을 정의하는 많은 속성이 있습니다.

print(dir(re.search('AAA(.+?)ZZZ', string)))Match 객체의 모든 속성을 출력합니다. dir()이 사용될 때__dir__()메소드가 호출되고이 메소드는 모든 속성 목록을 반환하기 때문에 일부 속성이 누락 될 수 있습니다. 이 메서드는 편집 가능하거나 재정의 할 수 있습니다.

Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

관련 문장 - Python String