Python正規表現

Linda Hamilton
リリース: 2025-01-29 22:11:10
オリジナル
298 人が閲覧しました

Python Regular Expressions

はじめに

ODOMA処理とユーザー入力検証は、特にユーザーインタラクションを必要とするアプリケーションを構築する場合、プログラミングの重要なリンクです。 Pythonは、これらのタスクを完了するための強力なツールを提供します(Regex)。この記事では、Pythonの異常と正規表現の世界を探り、その重要性を説明し、実用的な例を提供し、コードが強力で効率的であることを確認します。

Python異常を理解

詳細な研究で勉強する前に、Pythonの異常な異常の概念を理解する必要があります。異常は、通常のプロセスを中断するイベントです。これらのイベントは通常、ゼロやアクセスで存在しないドキュメントを削除しようとするなど、エラーによって引き起こされます。

基本的な異常な治療

Pythonは、異常を処理するためにTry-Exceptブロックを提供します。これは簡単な例です:

この例では、ユーザーがゼロまたは入力で非integerを削除しようとする場合、プログラムは異常をキャプチャし、エレガントに処理します。

try:
    分子 = int(input("请输入分子:"))
    分母 = int(input("请输入分母:"))
    结果 = 分子 / 分母
    print(f"结果是 {结果}")
except ZeroDivisionError:
    print("错误:不能除以零!")
except ValueError:
    print("错误:请输入有效的整数!")
ログイン後にコピー
ログイン後にコピー
異常な治療の重要性

ソフトウェア開発では、手順が誤って崩壊するのを防ぐことができるため、正しい異常な処理が重要です。また、ユーザーにエラーを伝えて、どのような問題とそれを解決するかを理解するのに役立つ方法も提供します。

より深い正規表現

通常は「regex」と呼ばれる正規表現は、検索モードによって定義される文字シーケンスです。それらは、Pythonでの文字列の検証と操作に非常に役立ちます。

なぜ正規表現を使用するのですか?

メールアドレスを確認する必要があるシーンを検討してください。正規表現がない場合は、最終的に「@」シンボルとピリオド( "。")の存在を確認するために多数のコードを記述できます。ただし、これでさえ、電子メールアドレスが効果的であることを保証するのに十分ではないかもしれません。正規表現を使用すると、シンプルで強力な検証ルールを作成できます。

基本的な正規表現の例

メールアドレスを確認するために、簡単な正規表現の例から始めましょう:

この例では、r "^w @w .w $"は正規表現モードです

^文字列の先頭からモードが開始されることを確認してください。 wは1つ以上の単語文字(文字、数字、下の行)に一致します。 @ "@"シンボル。 。 $は、文字列の終わりにパターンの終わりを保証します。

アドバンスドメール検証
import re

邮箱 = input("您的邮箱地址是?").strip()

if re.search(r"^\w+@\w+\.\w+$", 邮箱):
    print("有效的邮箱地址")
else:
    print("无效的邮箱地址")
ログイン後にコピー
ログイン後にコピー

上記の基本的な正規表現は、すべての無効な電子メール形式をキャプチャしない場合があります。たとえば、効果的な電子メールアドレスでは許可されていない複数の「@」記号が許可されています。これは改良されたバージョンです:

この正規表現モードはより堅牢です:

  • [^@]「@」シンボルが別の「@」が含まれていない前後のコンテンツにコンテンツが確認されていることを確認してください。
  • w {2、}ドメイン名パーツに少なくとも2つの文字があることを確認してください(期間以降)。
一般的なトラップの処理

正規表現関数は強力ですが、難しいかもしれません。たとえば、正規表現(。)の期間は、文字を変更する以外のキャラクターと一致します。文字列内の実際の期間を一致させるには、バックスロープ(。)を使用して義を作成する必要があります。さらに、正規表現モードではケースを区別しますが、Re.ignorcaseロゴを使用してこの問題に対処できます。

<小>事件の奨学金

Re.ignorcaseロゴを使用することにより、正規表現はケースによって区別されず、「com」と「com」は同じと見なされます。
try:
    分子 = int(input("请输入分子:"))
    分母 = int(input("请输入分母:"))
    结果 = 分子 / 分母
    print(f"结果是 {结果}")
except ZeroDivisionError:
    print("错误:不能除以零!")
except ValueError:
    print("错误:请输入有效的整数!")
ログイン後にコピー
ログイン後にコピー

ユーザー情報を抽出します<提>

正規表現は、文字列の特定の部分を抽出するために使用されるだけではありません。 TwitterのURLからユーザー名を抽出するとします:

このコードは、URLの関連部分を一致させてTwitterユーザー名を抽出します。 (w)ユーザー名をキャプチャする、それは2番目のマッチグループ(グループ(2))です。

正規表現でコードを最適化します
import re

邮箱 = input("您的邮箱地址是?").strip()

if re.search(r"^\w+@\w+\.\w+$", 邮箱):
    print("有效的邮箱地址")
else:
    print("无效的邮箱地址")
ログイン後にコピー
ログイン後にコピー

元の文字列を使用

を使用します

正規表現を処理するときは、元の文字列(r ")を使用することをお勧めします。プリミティブストリングは、偶発的な遷移シーケンスを防ぐために、背面の勾配をテキスト文字として見ます。たとえば、

一般的なエラーを避けてください

import re

邮箱 = input("您的邮箱地址是?").strip()

if re.search(r"^[^@]+@[^@]+\.\w{2,}$", 邮箱):
    print("有效的邮箱地址")
else:
    print("无效的邮箱地址")
ログイン後にコピー
モードを複雑にしすぎる:シンプルから始めて、必要な場合にのみ複雑さを増やします。

パフォーマンスを無視する:複雑なモードまたは大きなテキストを使用する場合、正規表現が遅くなる場合があります。遡及的最適化を最小化することにより。
  • 読みやすさ:読みやすさを維持するために注釈または詳細なパターンを使用して、複雑な正規表現パターンを分解することにより、読みやすさを維持します。
  • 実際のアプリケーション:ユーザーの入力をクリーンアップ
  • ユーザーは通常、予期しない形式でデータを入力します。正規表現は、これらの入力を標準化するのに役立ちます。フォーマット名のプログラムを検討してください:

このコードは、「姓、名前」形式で「名前付き姓」として再ソーソートされます。

SEOの最適化と実際の使用
import re

邮箱 = input("您的邮箱地址是?").strip()

if re.search(r"^\w+@\w+\.\w+$", 邮箱, re.IGNORECASE):
    print("有效的邮箱地址")
else:
    print("无效的邮箱地址")
ログイン後にコピー

正規表現は、SEOでも役割を果たすことができます。たとえば、ネットワークキャプチャに使用したり、HTMLからメタタグまたは特定のコンテンツを抽出して、ネットワークコンテンツが検索エンジンに最適化されるようにすることができます。

この例は、SEOに不可欠なHTMLマークの要素の説明です。

<论>結論
import re

网址 = input("请输入您的 Twitter 个人资料网址:").strip()

匹配 = re.search(r"^https?://(www\.)?twitter\.com/(\w+)", 网址)
if 匹配:
    用户名 = 匹配.group(2)
    print(f"用户名:{用户名}")
else:
    print("无效的网址")
ログイン後にコピー

Pythonの正規表現を理解し、マスターして、単純な検証から複雑なテキスト処理タスクまで、可能性に満ちた世界を開きます。正しい異常な治療と組み合わせることで、強力で効率的でユーザーフレンドリーなアプリケーションを作成できます。さまざまな正規表現パターンを試してみると、プログラミングツールパックに不可欠なツールであることがわかります。

これらの概念を習得することにより、より簡潔で効率的なコードを作成するだけでなく、実際のワールド入力をエレガントに処理できるアプリケーションを開発することの利点を取得することもできます。

以上がPython正規表現の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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