ホームページ >バックエンド開発 >Python チュートリアル >Python 正規表現の高度な使用法
Python の場合、正規表現を学習するには、モジュール re の使用方法を学習する必要があります。この記事では、誰もがマスターすべき高度なテクニックをいくつか紹介します。
正規表現オブジェクトをコンパイルする
re.compile 関数は、パターン文字列とオプションのフラグ パラメーターに基づいて正規表現オブジェクトを生成します。このオブジェクトには、正規表現の一致と置換のための一連のメソッドがあります。使用法には若干の違いがあります。たとえば、文字列を一致させるには、次のメソッドを使用できます。
compile を使用する場合は、次のようになります。
なぜこのように使用する必要があるのですか?実際、正規表現のマッチングの速度を向上させるために、正規表現オブジェクトが再利用されます。 2 つの方法の効率を比較してみましょう:
2 番目の方法の方がはるかに高速であることがわかります。実際の作業では、コンパイルされた正規表現オブジェクトを使用すればするほど、効果が向上することがわかります。
グループ
一致するコンテンツをグループ化する使用法を見たことがあるかもしれません:
一致するオブジェクトに括弧を追加することで、一致結果を正確に一致させることができます。ネストされたグループ化を実行することもできます:
グループ化はニーズを満たすことができますが、可読性が低い場合があります。その場合は、グループ化に名前を付けることができます:
現在、可読性は非常に高くなっています。
文字列マッチング
sed を学習したことのある学生は、次の置換の使用法を見たことがあるかもしれません:
この 1 は、前の通常の一致の結果を表します。上記の sed は、一致した結果に角かっこを追加します。
re モジュールにはこのような使用法もあります:
名前付きグループ化を使用することも可能です:
近隣マッチング (周囲を見回す)
re モジュールは近隣マッチングもサポートしています。例を見てください:
通常のマッチング時に関数を使用する
これまでに説明したことのほとんどは式のマッチングですが、場合によっては、特に置換の場合、要件がより複雑になることがあります。
たとえば、次の文のように、チャット レコードを Slack の API 経由で取得できます。
そのうちの <@U1EAT8MG9> と <@U0K1MF23Z> は、Slack によってカプセル化されているため、インターフェイスはこの対応関係を取得します。
結果は次のようになります。
対応関係を解析した後、山かっこも削除されることを望みます。置換結果は「@xiaoming, @laolin確かにこのようです」
正規表現を使用する方法
ですから、もちろんパターンを関数にすることもできます
Python 正規表現の高度な使用法に関連するその他の記事については、PHP 中国語 Web サイトに注目してください。