ユーザー入力の正規表現エスケープ文字の処理
ユーザー入力をテキスト検索の正規表現パターンとして利用する場合、次のような文字を考慮することが重要です。正規表現構文では特別な意味を持ちます。これらを未処理のままにしておくと、「Word (s)」の '(' および ')' がリテラル文字列ではなく正規表現グループとして扱われるなど、意図しない動作が発生する可能性があります。
このようなケースを効果的に処理するには、re. scape() 関数は便利な解決策を提供します。この関数は英数字以外の文字をエスケープし、基本的に正規表現パターン内のリテラル文字列として扱います。 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() を使用して単語がエスケープされます。これにより、単語内の特殊な正規表現文字がリテラルとして扱われるようになり、関数が正規表現グループではなく文字列として「Word (s)」を正確に照合できるようになります。
以上がPython でユーザー入力を正規表現パターンとして安全に使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。