Python 정규식: 문자열을 검색하고 바꾸는 방법

이 자습서에서는 regex(또는 정규식)를 사용하여 Python에서 문자열에 대한 검색 및 바꾸기 작업을 수행하는 방법에 대해 배웁니다.
Regex는 Python에서 다양한 작업을 수행하는 데 사용할 수 있습니다. 검색 및 바꾸기 작업을 수행하고, 텍스트의 패턴을 바꾸고, 문자열에 특정 패턴이 포함되어 있는지 확인하는 데 사용됩니다. 하지만 오늘은 정규식을 사용하여 검색 및 바꾸기 작업을 수행하는 방법을 배웁니다.

목차


  • Python regex replace
  • Regex to search and replace
  • Replacing multiple patterns using regex
  • Replacing multiple patterns with multiple replacements using regex
  • Closing thoughts

  • 파이썬 정규식 바꾸기



    Python에는 re라는 내장 모듈이 있어 검색 및 교체에 도움이 됩니다. re를 사용하려면 코드 시작 부분에서 모듈을 가져와야 합니다.

    import re
    

    이제 regex를 사용한 검색 및 바꾸기 작업에 대해 알아봅니다.

    검색 및 교체를 위한 정규식



    regex 메서드는 문자열을 검색한 다음 다른 값으로 바꿉니다. re 모듈의 Python re.sub() 함수를 사용합니다.

    통사론:



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

    우선, 이 모든 매개변수가 의미하는 바를 이해하겠습니다.
    패턴: Python에서 주어진 문자열 내에서 검색하고 찾으려는 정규식입니다.
    문자열: 작업을 수행하려는 지정된 문자열을 포함하는 변수입니다.
    개수: 패턴이 문자열에서 여러 번 발생하는 경우 패턴을 바꾸려는 횟수입니다. 기본값은 0입니다. 선택 사항입니다.
    플래그: 정규식 플래그는 선택 사항입니다.

    입력:



    import re  
    
    str = "[email protected]"
    print(re.sub("[a-z]*@", "abc@", str))
    

    산출:



    [email protected]
    


    정규식을 사용하여 여러 패턴 바꾸기



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

    통사론:



    re.sub(pattern_1 | pattern_2, replacement, string, count=0, flags=0)
    

    입력:



    import re  
    
    str = "Joe-Kim Ema Max Aby Liza"
    print(re.sub("(\s) | (-)", ", ", str))
    

    산출:



    "Joe, Kim, Ema, Max, Aby, Liza"
    

    정규식을 사용하여 여러 패턴을 여러 교체로 바꾸기



    이제 여러 패턴을 대체하고 싶지만 다른 대체로 정규식을 사용할 수도 있습니다. 다음 예제에서 볼 수 있는 약간의 수정으로 수행할 수 있습니다.

    입력:



    import re  
    
    def convert_case(match_obj):
      if match_obj.group(1) is not None:
        return match_obj.group(1).lower()
      if match_obj.group(2) is not None:
        return match_obj.group(2).upper()
    
    str = "jOE kIM mAx ABY lIzA"
    print(re.sub(r"([A-Z]+) | ([a-z]+)", convert_case, str))
    

    이 예에서 문자열에는 교체해야 하는 대문자와 소문자가 포함되어 있습니다. 대문자를 소문자로 또는 그 반대로 바꿔야 합니다.
    그러기 위해 두 개의 그룹을 만든 다음 교체를 위한 기능을 추가합니다.

    산출:





    "Joe Kim MaX aby LiZa"

    마무리 생각



    Python에서 문자열을 바꾸려면 regex sub() 메서드가 사용됩니다. 교체된 문자열을 반환하는 re 모듈의 내장 Python 메서드입니다. remodule를 가져오는 것을 잊지 마십시오. 이 메서드는 문자열에서 패턴을 검색한 다음 지정된 새 식으로 바꿉니다. 더 많은 Python 개념here에 대해 배울 수 있습니다.

    좋은 웹페이지 즐겨찾기