7 つの Python 正規表現の使用例

Apr 07, 2017 am 10:46 AM

概念としては、正規表現は Python に固有のものではありません。ただし、Python での正規表現の実際の使用には、まだいくつかの小さな違いがあります。

この記事は、Python 正規表現に関する一連の記事の一部です。このシリーズの最初の記事では、Python で正規表現を使用する方法に焦点を当て、Python のユニークな機能のいくつかを取り上げます。

Pythonで文字列を検索・見つける方法をいくつか紹介します。次に、グループ化を使用して、見つかった一致するオブジェクトのサブアイテムを処理する方法について説明します。

私たちが使用したい Python の正規表現のモジュールは、通常「re」と呼ばれます。

1. Python のプリミティブ型文字列

Python コンパイラーは、文字列定数内のエスケープ文字を表すために「」 (バックスラッシュ) を使用します。

バックスラッシュの後にコンパイラによって認識される特殊文字の文字列が続く場合、エスケープ シーケンス全体が対応する特殊文字に置き換えられます (たとえば、「n」はコンパイラによって改行文字に置き換えられます)。

しかし、これは Python で正規表現を使用する場合に問題を引き起こします。バックスラッシュは、正規表現内の特殊文字 (* や + など) をエスケープするために「re」モジュールでも使用されるためです。

この 2 つの混合物は、エスケープ文字自体をエスケープする必要がある場合 (特殊文字が Python と正規表現コンパイラーの両方で認識される場合) と、エスケープする必要がない場合があります (特殊文字のみが認識される場合) ことを意味します。 Python コンパイラによって認識されます)。

必要なバックスラッシュの数を把握することに集中する代わりに、代わりに生の文字列を使用できます。

プリミティブ型の文字列は、通常の文字列の二重引用符の前に文字「r」を追加するだけで作成できます。文字列がプリミティブ型の場合、Python コンパイラは置換を試みません。本質的には、文字列にまったく干渉しないようにコンパイラに指示していることになります。



Python で正規表現を使用して検索する

「re」モジュールは、入力文字列に対して正確なクエリを実行するためのメソッドをいくつか提供します。ここで説明するメソッドは次のとおりです:



各メソッドは、正規表現と一致する文字列を受け取ります。これらの各メソッドがどのように機能し、どのように異なるのかを理解するために、それぞれのメソッドを詳しく見てみましょう。

2. re.match を使用して検索 – マッチングが始まります

まず match() メソッドを見てみましょう。 match() メソッドの仕組みは、検索対象の文字列の先頭がパターンと一致する場合にのみ一致を見つけるというものです。

たとえば、文字列「dog cat Dog」に対して math() メソッドを呼び出すと、検索パターン「dog」が一致します:



group() メソッドについては後で詳しく説明します。現時点では、引数として 0 を指定して呼び出したこと、および group() メソッドが見つかった一致するパターンを返すことだけを知っておく必要があります。

返された SRE_Match オブジェクトについては今のところスキップしました。これについてはすぐに説明します。

ただし、同じ文字列で math() メソッドを呼び出し、パターン「cat」を探しても、一致するものは見つかりません。



3. re.search を使用して検索します – 任意の位置に一致します

search() メソッドは match() に似ていますが、search() メソッドは先頭から一致するもののみを検索することに限定されません。


ただし、search() メソッドは一致が見つかると停止するため、この例の文字列では searc() メソッドを使用して、 find 'dog' は最初に出現したもののみを検索します。

4. re.findall を使用する – 一致するすべてのオブジェクト
これまで Python で最もよく使用した find メソッドは findall() メソッドです。 findall() メソッドを呼び出すと、一致オブジェクトを取得する代わりに、一致するすべてのパターンのリストを単純に取得できます (一致オブジェクトについては次に説明します)。私にとってはもっとシンプルです。サンプル文字列に対して findall() メソッドを呼び出すと次の結果が得られます:



5. match.start メソッドと match.end メソッドを使用する

その後、前の search() によって以前に返された「match」および match() メソッド 「オブジェクト」とは正確には何ですか?

単純に文字列の一致する部分を返すのとは異なり、search() および match() によって返される「一致するオブジェクト」は、実際には部分文字列を一致させるためのラッパー クラスです。

先ほど、 group() メソッドを呼び出すことで一致した部分文字列を取得できることを見ましたが (次のセクションで説明するように、グループ化の問題を処理する場合、一致オブジェクトは実際に非常に役立ちます)、一致にはそれだけではありません。 object 一致する部分文字列に関する情報。

たとえば、match オブジェクトは、一致したコンテンツが元の文字列のどこで始まり、どこで終わるかを教えてくれます。

この情報を知っていると、非常に役立つことがあります。

6. mathch.group を使用して数値でグループ化します

前に述べたように、match オブジェクトはグループ化を処理するのに非常に便利です。

グループ化は、正規表現全体の特定の部分文字列を見つける機能です。正規表現全体の一部としてグループを定義し、この部分の一致するコンテンツを個別に見つけることができます。

どのように機能するかを見てみましょう:

私が作成した文字列は、誰かのアドレス帳から抜粋したスニペットのように見えます。この行を次のような正規表現と照合できます:


正規表現の特定の部分を括弧 (文字 '(' および ')') で囲むことにより、コンテンツをグループ化でき、これらのサブグループは次のようになります。別々に扱われます。

これらのグループは、グループ オブジェクトの group() メソッドを使用して取得できます。これらは、正規表現で左から右に表示される番号順 (1 から開始) によって見つけることができます。

グループの序数が 1 から始まる理由は、0 番目のグループが保持するために予約されているためです。 all Match オブジェクト (以前に match() メソッドと search() メソッドを学習したときに確認しました)。

7. match.group を使用してエイリアスでグループ化します

場合によっては、特に正規表現に多数のグループがある場合、グループの出現順による位置決めは非現実的になります。 Python では、次のステートメントを使用してグループ名を指定することもできます:

引き続き group() メソッドを使用してグループの内容を取得できますが、今回は、代わりに指定したグループ名を使用する必要があります。以前に使用したもの グループの桁数。

これにより、コードの明確さと読みやすさが大幅に向上します。正規表現が複雑になるにつれて、グループが何をキャプチャするのかを理解することがますます難しくなることが想像できます。グループに名前を付けると、あなたと読者にあなたの意図が明確に伝わります。

findall() メソッドはグループ化されたオブジェクトを返しませんが、グループ化も使用できます。同様に、findall() メソッドはタプルのコレクションを返します。各タプルの N 番目の要素は正規表現の N 番目のグループに対応します。

ただし、グループの名前付けは findall() メソッドには適用されません。

この記事では、Python で正規表現を使用するための基本をいくつか紹介しました。プリミティブ文字列型について (そして、それが正規表現を使用する際の問題点の解決にどのように役立つのか) について学びました。また、match()、search()、および findall() メソッドを使用して基本的なクエリを実行する方法と、グループ化を使用して一致したオブジェクトのサブコンポーネントを処理する方法も学びました。

いつものように、このトピックについてさらに詳しく知りたい場合は、re モジュールの公式 Python ドキュメントが素晴らしいリソースです。

今後の記事では、Python での正規表現の適用についてさらに詳しく説明します。マッチ オブジェクトをより包括的に見て、文字列内で置換を実行するためにそれらを使用する方法、さらにはテキスト ファイルから Python データ構造を解析するために使用する方法を学びます。

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

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHPおよびPython:さまざまなパラダイムが説明されています PHPおよびPython:さまざまなパラダイムが説明されています Apr 18, 2025 am 12:26 AM

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPとPythonの選択:ガイド PHPとPythonの選択:ガイド Apr 18, 2025 am 12:24 AM

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

Sublime Code Pythonを実行する方法 Sublime Code Pythonを実行する方法 Apr 16, 2025 am 08:48 AM

PythonコードをSublimeテキストで実行するには、最初にPythonプラグインをインストールし、次に.pyファイルを作成してコードを書き込み、Ctrl Bを押してコードを実行する必要があります。コードを実行すると、出力がコンソールに表示されます。

PHPとPython:彼らの歴史を深く掘り下げます PHPとPython:彼らの歴史を深く掘り下げます Apr 18, 2025 am 12:25 AM

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

Python vs. JavaScript:学習曲線と使いやすさ Python vs. JavaScript:学習曲線と使いやすさ Apr 16, 2025 am 12:12 AM

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

Golang vs. Python:パフォーマンスとスケーラビリティ Golang vs. Python:パフォーマンスとスケーラビリティ Apr 19, 2025 am 12:18 AM

Golangは、パフォーマンスとスケーラビリティの点でPythonよりも優れています。 1)Golangのコンピレーションタイプの特性と効率的な並行性モデルにより、高い並行性シナリオでうまく機能します。 2)Pythonは解釈された言語として、ゆっくりと実行されますが、Cythonなどのツールを介してパフォーマンスを最適化できます。

vscodeでコードを書く場所 vscodeでコードを書く場所 Apr 15, 2025 pm 09:54 PM

Visual Studioコード(VSCODE)でコードを作成するのはシンプルで使いやすいです。 VSCODEをインストールし、プロジェクトの作成、言語の選択、ファイルの作成、コードの書き込み、保存して実行します。 VSCODEの利点には、クロスプラットフォーム、フリーおよびオープンソース、強力な機能、リッチエクステンション、軽量で高速が含まれます。

メモ帳でPythonを実行する方法 メモ帳でPythonを実行する方法 Apr 16, 2025 pm 07:33 PM

メモ帳でPythonコードを実行するには、Python実行可能ファイルとNPPEXECプラグインをインストールする必要があります。 Pythonをインストールしてパスを追加した後、nppexecプラグインでコマンド「python」とパラメーター "{current_directory} {file_name}"を構成して、メモ帳のショートカットキー「F6」を介してPythonコードを実行します。

See all articles