ホームページ  >  記事  >  バックエンド開発  >  Python正規表現の高度な使い方を詳しく解説

Python正規表現の高度な使い方を詳しく解説

高洛峰
高洛峰オリジナル
2017-03-23 17:29:251507ブラウズ

Pythonの場合、正規表現を学ぶにはモジュールreの使い方を学ぶ必要があります。この記事では、誰もがマスターすべき高度なテクニックをいくつか紹介します。

正規のオブジェクトをコンパイルする

re.compile関数は、パターン文字列とオプションのフラグ引数に基づいて正規表現オブジェクトを生成します。このオブジェクトには、正規表現の一致と置換のための一連のメソッドがあります。使用法には若干の違いがあります。たとえば、文字列を一致させるには、次のメソッドを使用できます。

compile を使用する場合は、次のようになります。

なぜこのように使用する必要があるのですか?実際、正規表現のマッチングの速度を向上させるために、正規表現オブジェクトが再利用されます。 2 つの方法の効率を比較してみましょう:

Python正規表現の高度な使い方を詳しく解説

2 番目の方法の方がはるかに高速であることがわかります。実際の作業では、コンパイルされた正規表現オブジェクトを使用すればするほど、効果が向上することがわかります。

Group(グループ)

一致するコンテンツをグループ化する使用法を見たことがあるかもしれません:

Python正規表現の高度な使い方を詳しく解説

一致するオブジェクトに括弧を追加することで、一致結果を正確に一致させることができます。ネストされたグループ化も実行できます:

Python正規表現の高度な使い方を詳しく解説

グループ化はニーズを満たすことができますが、可読性が低い場合があります。その場合は、グループに名前を付けることができます:

Python正規表現の高度な使い方を詳しく解説

現在、可読性は非常に高くなります。

文字列マッチング

sed を学習した学生は、次の置換使用法を見たことがあるかもしれません:

この 1 は、前の通常の一致の結果を表します。上記の sed は、一致した結果に角かっこを追加します。

re モジュールにはこのような使用法もあります:

Python正規表現の高度な使い方を詳しく解説

名前付きグループ化を使用することも可能です:

Python正規表現の高度な使い方を詳しく解説

近隣マッチング (Look around)

re モジュールは近隣マッチングもサポートしています。例を見てみましょう わかりました:

Python正規表現の高度な使い方を詳しく解説

通常のマッチングには関数を使用してください

これまでに見たことのほとんどは式のマッチングですが、場合によっては、特に置換の場合、要件がより複雑になることがあります。

たとえば、次の文のように、チャット レコードを Slack の API 経由で取得できます。

そのうちの と は、Slack によってカプセル化されているため、インターフェイスはこの対応関係を取得します。

結果は次のようになります。

対応関係を解析した後、山かっこも削除されることを望みます。置換結果は「@xiaoming, @laolin確かにこのようです」

正規表現を使用する方法

Python正規表現の高度な使い方を詳しく解説

ですから、もちろんパターンも関数にすることができます

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

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