Python緩正規表現の使い方分析


本論文の例はPython緩正規表現の使い方を述べている。皆さんに参考にしてあげます。具体的には以下の通りです。
Pythonは、ユーザがいわゆる緩正規表現を利用してこのタスクを完了させることを可能にする。緩い正規表現とコンパクトな正規表現の違いは主に2つの点で示されています。
1.空白文字を無視します。スペース記号、タブ、エコーは自分自身にマッチしません。まったくマッチしません。フリーフォーマル表現にスペース記号を合わせたい場合は、その前にバックスラッシュ記号を追加して彼を変換してください。
2.コメントを無視します。緩い正規表現でのコメントは通常のPythonコードと同じです。この場合、ソースコードにコメントするのではなく、複数行の文字列に注釈を採用し、同じように動作します。
以下は緩い正規表現の例です。直観的に見ると、正規表現のパターンは何行にも分けて書かれています。各行に注釈を付けることができます。このように、過時間後に振り返ってみると、この正規表現の役割が分かりやすくなり、コードの可読性が向上します。

>>> import re
>>> pattern = """
  ^          # beginning of string
  M{0,4}       # thousands - 0 to 4 M's
  (CM|CD|D?C{0,3})  # hundreds - 900 (CM), 400 (CD), 0-300 (0 to 3 C's),
            #      or 500-800 (D, followed by 0 to 3 C's)
  (XC|XL|L?X{0,3})  # tens - 90 (XC), 40 (XL), 0-30 (0 to 3 X's),
            #    or 50-80 (L, followed by 0 to 3 X's)
  (IX|IV|V?I{0,3})  # ones - 9 (IX), 4 (IV), 0-3 (0 to 3 I's),
            #    or 5-8 (V, followed by 0 to 3 I's)
  $          # end of string
  """
>>> re.search(pattern, 'M', re.VERBOSE)
<_sre.SRE_Match object at 0x01401570>
>>> re.search(pattern, 'MCMLXXXIX', re.VERBOSE)
<_sre.SRE_Match object at 0x014015C0>
>>> re.search(pattern, 'M')
>>>

緩い正規表現を使用する場合、もう一つのパラメータre.VERRBOSEを伝達しなければならない。このパラメータはREモジュールに定義されている定数であり、一致する正規表現は緩い正規表現であることを示している。Pythonは正規表現が緩いタイプかそれともコンパクトタイプかを自動的に検出できないので、正規表現は緩いタイプと明示しなければなりません。だから

re.search(pattern, 'M', re.VERBOSE)#       

と:

re.search(pattern, 'M'))#   “  ”     

得られた結果は違っています。
以下はよく見られる正規表現です。
^マッチング文字列の開始。
$文字列の最後にマッチします。
bは単語の境界にマッチします。
\dは任意の数字にマッチします。
\Dは任意の非数値文字にマッチします。
xですかオプションのx文字にマッチします。つまり、1回または0回のx文字にマッチします。
x*は0回または複数回のx文字にマッチします。
x+は1回または複数のx文字にマッチします。
x{n,m}はx文字にマッチしています。少なくともn回、せいぜいm回です。
(a 124 b 124 c)aに合うか、bに合うか、cに合うか。
(x)一般的には記憶グループを表します。rememberged groupは、re.search関数を利用してオブジェクトのgroups()関数に戻ります。その値を取得します。
Pythonに関する詳細については、当駅のテーマを見ることができます。「Python正則表現の使い方のまとめ」、「Pythonデータ構造とアルゴリズム教程」、「Python Socketプログラミング技術のまとめ」、「Python関数使用テクニックのまとめ」、「Python文字列操作テクニックのまとめ」、「Python入門と階段の経典教程」および「Pythonファイルとディレクトリ操作の概要
ここで述べたように、皆様のPythonプログラムの設計に役に立ちます。