>백엔드 개발 >파이썬 튜토리얼 >Python에서 사용자 입력을 정규식 패턴으로 안전하게 사용하려면 어떻게 해야 합니까?

Python에서 사용자 입력을 정규식 패턴으로 안전하게 사용하려면 어떻게 해야 합니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-27 20:03:10380검색

How Can I Safely Use User Input as a Regular Expression Pattern in Python?

사용자 입력에 대한 정규식 이스케이프 문자 처리

사용자 입력을 텍스트 검색의 정규식 패턴으로 활용할 때 다음과 같은 문자를 고려하는 것이 중요합니다. 정규식 구문에서 특별한 의미를 갖습니다. 처리하지 않은 채로 두면 "Word(s)"의 '(' 및 ')'를 리터럴 문자열 대신 정규식 그룹으로 처리하는 등 의도하지 않은 동작이 발생할 수 있습니다.

이러한 경우를 효과적으로 처리하려면 re. escape() 함수는 편리한 솔루션을 제공합니다. 이 함수는 영숫자가 아닌 문자를 이스케이프하여 기본적으로 정규식 패턴 내에서 리터럴 문자열로 처리합니다. re.escape()를 활용하면 개별 정규식 기호에 대한 복잡한 대체를 피할 수 있습니다.

구현 예:

설명적인 예는 simplistic_plural() 함수입니다. 주어진 단어에서 선택적으로 's'가 뒤에 오는 특정 단어를 검색합니다. text:

import re

def simplistic_plural(word, text):
    word_or_plural = re.escape(word) + 's?'
    return re.match(word_or_plural, text)

이 함수에서는 정규식 패턴을 구성하기 전에 re.escape()를 사용하여 단어를 이스케이프합니다. 이렇게 하면 단어 내의 모든 특수 정규식 문자가 리터럴로 처리되어 함수가 정규식 그룹이 아닌 문자열로 "단어(들)"를 정확하게 일치시킬 수 있습니다.

위 내용은 Python에서 사용자 입력을 정규식 패턴으로 안전하게 사용하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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