ホームページ > バックエンド開発 > Python チュートリアル > Python でユーザー入力を正規表現パターンとして安全に使用するにはどうすればよいですか?

Python でユーザー入力を正規表現パターンとして安全に使用するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-27 20:03:10
オリジナル
378 人が閲覧しました

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

ユーザー入力の正規表現エスケープ文字の処理

ユーザー入力をテキスト検索の正規表現パターンとして利用する場合、次のような文字を考慮することが重要です。正規表現構文では特別な意味を持ちます。これらを未処理のままにしておくと、「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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート