파이썬 정규식 이스케이프

Abid Ullah 2023년6월21일
  1. 파이썬 정규식 이스케이프
  2. Python 정규식 이스케이프 구문
  3. Python Regex의 다중 사용
파이썬 정규식 이스케이프

이 문서는 Python 정규식 이스케이프에 관한 것입니다. 또한 Python 정규식 이스케이프와 적절한 예제 코드와 함께 사용하는 방법 및 Python Regex의 여러 용도를 다룰 것입니다.

또한 Python은 정규식(또는 정규식)을 사용하여 문자열에 대한 검색 및 바꾸기 작업을 지원합니다.

파이썬 정규식 이스케이프

‘RegEx’는 미리 정의된 패턴에 따라 텍스트를 일치시키는 엄청난 기술입니다. 텍스트를 특정 패턴과 비교하면 해당 패턴이 있는지 여부를 감지할 수 있습니다.

패턴을 하위 패턴으로 나눌 수도 있습니다. Python에서 정규식 이스케이프는 광범위한 작업을 수행할 수 있습니다.

검색 및 바꾸기 작업을 수행하고, 텍스트의 패턴을 바꾸고, 문자열에 특정 패턴이 포함되어 있는지 확인할 수 있습니다. 오늘 정규식을 사용하여 검색 및 바꾸기 작업도 수행합니다.

Python의 정규식은 표준 라이브러리의 re 모듈을 사용하여 표현할 수 있습니다. 정규식과 문자열은 검색을 수행하는 것이 주된 목적이라고 생각합니다.

첫 번째 일치 항목이 있는지 여부에 따라 일치 항목이 반환됩니다.

Python에는 검색 및 교체를 지원하는 기본 모듈 re가 있습니다. 우리의 코드는 그것을 사용하기 위해 처음에 모듈을 가져와야 합니다.

import re

예제 코드:

import re

match = re.search(
    r"Analytics",
    "DataScience: Data Science & Analytics\                                    subfield of AI",
)
print(match)
print(match.group())
print("Begin the Index:", match.start())
print("Let's finish the Index:", match.end())

출력:

<re.Match object; span=(28, 37), match='Analytics'>
Analytics
Begin the Index: 28
Let's finish the Index: 37

Python 정규식 이스케이프 구문

원시 속성은 정규식이 아닌 r 문자인 (r'property')로 표시됩니다. 일반 문자열과 달리 일반 문자열은 \ 문자를 이스케이프 문자로 해석하지 않습니다.

정규식 엔진이 이스케이프에 / 문자를 사용하는 방식으로 인해 / 문자를 사용하여 이스케이프합니다.

이에 대해 Python으로 자세히 설명하겠습니다.

import re

# When an escape() is used in the first case, it returns a string with BackSlash '/' before every non-Alphanumeric character. In the second case, it returns a string with BackSlash '/' before '' only.
print(re.escape("It was really a wonderful experience so far"))
print(re.escape("I am curious about the experience [a-9], she said \t ^Awesome"))

출력:

It\ was\ really\ a\ wonderful\ experience\ so\ far
I\ am\ curios\ about\ the\ experience\ \[a\-9\],\ she\ said\ \	\ \^Awesome

또한 Python에서 정규식으로 문자열에 단어가 있는지 확인하려면 쉼표를 사용하여 문자열을 구분할 수 있습니다.

문자열에 이스케이프 문자가 없는 한 r은 문자열을 이스케이프 문자를 처리하지 않는 원시 문자열로 만듭니다.

또한 re.match는 문자열의 시작부터 일치합니다. 즉, 문자열과 패턴 간에 정확히 일치하는 항목을 검색합니다.

문자열의 어떤 항목과도 일치해야 하는 경우 re.search를 사용하십시오. 다음은 예입니다.

import re

line = "This,is,a,practice,string"
re.match("practice", line)
re.search("practice", line)

출력:

<re.Match object; span=(10, 18), match='practice'>

또한 Python 정규식의 다양한 사용에 대해 알아봅니다.

Python Regex의 다중 사용

정규식으로 검색 및 바꾸기

regex 메서드에서는 문자열을 검색한 다음 다른 값을 대체합니다. re 모듈에 있는 Python의 re.sub() 함수는 이를 수행하는 데 사용됩니다.

통사론:

re.sub(pattern, replacement, string, count=0, flags=0)

Python을 사용하여 정규식을 사용하여 문자열을 검색하고 찾을 수 있습니다. 이 경우 문자열은 작업하려는 문자열을 포함하는 변수입니다.

문자열에서 패턴이 여러 번 발생하는 경우 패턴을 대체할 횟수를 지정할 수 있습니다. 0은 기본값입니다. 어쨌든 선택 사항입니다.

정규식 플래그를 지정할 필요가 없습니다.

예제 코드:

import re

str = "abid304@outlook.com"
print(re.sub("[a-z]*@", "abc@", str))

출력:

abid304abc@outlook.com

정규식으로 다중 패턴 대체

정규식을 사용하여 여러 패턴을 한 번에 바꿀 수 있습니다. 다음 구문을 사용하여 이를 쉽게 수행할 수 있습니다.

통사론:

re.sub(pattern_11 | pattern_22, replacement, string, count=0, flags=0)

예제 코드:

import re

str = "MachineLearning is the Subfield of AI"
print(re.sub(r"(\s)|(-)", ",", str))

출력:

MachineLearning,is,the,Subfield,of,AI

Regex를 사용하여 여러 패턴을 여러 교체로 바꾸기

정규식을 사용하여 여러 패턴을 다른 대체 항목으로 바꿀 수도 있습니다. 다음 예와 같이 약간의 수정이 필요합니다.

예제 코드:

import re


def convrt_case(mtch_obj):
    if mtch_obj.group(1) is not None:
        return mtch_obj.group(1).lower()
    if mtch_obj.group(2) is not None:
        return mtch_obj.group(2).upper()


str = "mACHINE lEARNING IS THE sUBFIELD OF ai"
print(re.sub(r"([A-Z]+)|([a-z]+)", convrt_case, str))

출력:

Machine Learning is the Subfield of AI

이 예제에 표시된 대로 문자열에는 교체해야 하는 대문자와 소문자가 모두 포함되어 있습니다. 대문자는 소문자로 교체해야 하며 그 반대도 마찬가지입니다.

두 개의 그룹을 만든 다음 이를 대체할 함수를 추가합니다.

Python에서 정규식 이스케이프 sub() 메서드는 문자열을 대체하는 데 사용됩니다. 교체된 문자열은 re 모듈의 Python 내장 메서드에 의해 반환됩니다.

re 모듈을 가져와야 합니다. 이 방법에서는 문자열의 패턴을 검색하여 새 표현식으로 바꿉니다.

이 Python 기사가 Python에서 regex escape를 보다 효과적으로 사용하는 방법을 이해하는 데 도움이 되었기를 바랍니다.

작가: Abid Ullah
Abid Ullah avatar Abid Ullah avatar

My name is Abid Ullah, and I am a software engineer. I love writing articles on programming, and my favorite topics are Python, PHP, JavaScript, and Linux. I tend to provide solutions to people in programming problems through my articles. I believe that I can bring a lot to you with my skills, experience, and qualification in technical writing.

LinkedIn

관련 문장 - Python Regex