ホームページ >バックエンド開発 >Python チュートリアル >IP アドレスで '\d ' が予期せず一致するのはなぜですか?

IP アドレスで '\d ' が予期せず一致するのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-12 20:36:02891ブラウズ

Why Does

正規表現による文字列の整合性の検証

「d」正規表現を使用して数値入力を検証しようとすると、予期しない一致が発生する可能性があります。数字以外の文字を含む IP アドレスなど。この動作の根本原因を理解することは、効果的な文字列検証を実装するために重要です。

「d」正規表現は、文字列内の任意の連続した数字のシーケンスと一致します。ただし、ここで示した例では、IP アドレス「78.46.92.168:8000」に数字と数字以外の文字の両方が含まれています。 "d " は文字列内の任意の正の桁数に一致するため、残りの文字が桁の制約に従っていない場合でも、最初の 78 桁に一致します。

このような誤った一致を避けるには、次のように使用することをお勧めします。厳密な数値検証を強制する代替正規表現パターン。 1 つのアプローチは、文字列全体が数字のみで構成されるようにする「^d $」を使用することです。あるいは、Python の組み込み "isdigital()" メソッドを使用すると、文字列に数字のみが含まれているかどうかを確認する、より簡潔で簡単な方法が提供されます。

以上がIP アドレスで 'd ' が予期せず一致するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。