ホームページ  >  記事  >  バックエンド開発  >  コーディングとコーディングの効率化のために Python 正規表現を使用する方法

コーディングとコーディングの効率化のために Python 正規表現を使用する方法

PHPz
PHPzオリジナル
2023-06-22 22:52:391513ブラウズ

初心者は、Python コードを記述するときに、HTML Web ページからのデータの解析、テキスト ファイルからの特定の情報の抽出、長いテキストからの重要な部分のインターセプトなど、文字列処理の問題に遭遇することがよくあります。現時点では、正規表現を使用してこれらの問題を解決できます。この記事では、Pythonの正規表現を使ってコードを記述し、コーディング効率を高める方法を紹介します。

1.正規表現とは何ですか?

正規表現は文字列の一致に使用される方法で、特殊な記号と文字を使用してルールを形成し、テキストのフィルタリングや検索に非常に便利です。 Python で一般的に使用される正規表現モジュールは re モジュールです。これを使用して、文字列に対する通常の一致および置換操作を実装できます。

2. 正規表現の基本構文

正規表現を使用する前に、いくつかの基本構文をマスターする必要があります。

文字セット: [ ] は、角括弧内に含まれる任意の文字と一致します。

Metacharacters: . 改行文字を除く任意の文字と一致します。

繰り返しの数: * は 0 個以上の繰り返し文字に一致し、1 つ以上の繰り返し文字に一致し、? は 0 個以上の繰り返し文字に一致します。

開始と終了: ^ は文字列の開始位置に一致し、$ は文字列の終了位置に一致します。

反意語: W は文字または数字以外の任意の文字に一致し、S は空白以外の任意の文字に一致します。

グループ化: ( ) は、操作を容易にするためのグループ化に使用されます。

3. 正規表現の実践

以下では、例を使用して、コードの記述とコーディングの効率化のために正規表現を使用する方法を説明します。

例 1: テキストから日付を抽出する

テキスト ファイルでは、日付情報を抽出する必要があります。たとえば、2020 年 5 月 1 日の場合は、次の正規表現を使用できます。

import re

string = '2020年5月1日'
pattern = r"d+年d+月d+日"

result = re.findall(pattern, string)

print(result)

出力結果:

['2020年5月1日']

例 2: HTML ページからのリンクの抽出

HTML Web ページでは、すべてのリンク情報を抽出する必要があります。例:

import re
import requests

r = requests.get('http://www.baidu.com')
pattern = re.compile(r'(http|https|ftp)://[^s]+')

result = pattern.findall(r.text)

print(result)

出力結果:

['http://www.baidu.com/', 'http://home.baidu.com/', 'http://map.baidu.com/', 'http://v.baidu.com/', 'http://tieba.baidu.com/', 'http://fanyi.baidu.com/', 'http://news.baidu.com/', 'http://baijiahao.baidu.com/', 'http://xueshu.baidu.com/', 'http://wenku.baidu.com/', 'http://music.baidu.com/', 'http://image.baidu.com/', 'http://v.baidu.com/', 'http://tieba.baidu.com/', 'http://map.baidu.com/', 'http://wenku.baidu.com/', 'http://jingyan.baidu.com/', 'http://tieba.baidu.com/', 'http://zhidao.baidu.com/', 'http://tieba.baidu.com/', 'http://tieba.baidu.com/f?kw=%D6%D0%C9%BD%C1%F4%B2%FA&fr=index', 'http://tieba.baidu.com/f?kw=%B0%D9%B6%AF%B2%FA%D0%ED&fr=index', 'http://tieba.baidu.com/f?kw=%D2%EF%BE%AD%B5%DA&fr=index', 'http://tieba.baidu.com/f?kw=Ubuntu&fr=index', 'http://tieba.baidu.com/f?kw=%B0%C2%D7%B0%B5%DA&fr=index', 'http://tieba.baidu.com/f?kw=%B7%D7%CA%D0%CE%C4&fr=index', 'http://music.baidu.com/new', 'http://news.baidu.com/n?cmd=1&class=civilnews&tn=rss', 'http://baijiahao.baidu.com/u?app_id=1589334281367279', 'http://xueshu.baidu.com/s?wd=paperuri%3A%2836d90593d4c8d317f9ef4ef93bf56000%29&filter=sc_long_sign&sc_ks_para=q%3D%E9%A3%9F%E5%93%81%E5%AE%89%E5%85%A8', 'http://wenku.baidu.com/view/13908a38069661ce85006134', 'http://music.baidu.com/top?pst=shouyeTop', 'https://www.baidu.com/duty/', 'http://ir.baidu.com']

例 3: 文字列のコンマをピリオドに置き換える

テキスト ファイルでは、次のようにコンマをピリオドに置き換える必要があります:

import re

string = '12,34,56,78'
pattern = r','
replaced_string = re.sub(pattern, '.', string)

print(replaced_string)

出力結果:

12.34.56.78

例 4: 文字列が電子メール アドレスであるかどうかを検証する

ログイン システムを開発する場合、ユーザーが入力した電子メール アドレスが正当であるかどうかを検証する必要があります。たとえば、次のようになります。

import re

email = 'example@gmail.com'
pattern = r'[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(.[a-zA-Z0-9_-]+)+$'

if re.match(pattern, email):
    print('Email address is correct!')
else:
    print('Invalid email address!')

出力結果:

Email address is correct!

4. 概要

Python 正規表現はテキスト処理において重要な役割を果たします。正規表現の基本構文をマスターすることは、コーディングを完了するのに役立ちます。文字列処理タスクをより高速かつ効率的に実行します。実際の開発では、特定のニーズに応じて正規表現を他の Python ライブラリや関数と組み合わせて柔軟に適用し、コーディング効率とコード品質を向上させることができます。

以上がコーディングとコーディングの効率化のために Python 正規表現を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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