Python正則キャプチャ操作例

1742 ワード

この例では、Pythonの正規キャプチャ操作について説明します.皆さんの参考にしてください.具体的には以下の通りです.
目的:式'10+6/5-4*2'の各演算子に左右にスペース文字を付けて、'10+6/5-4*2'にする
考え方:グループ化、キャプチャ、置換
1.置換文字にはパラメータ1が含まれています(ここではパラメータとは言えませんが、何とは思いもよらないので、それにかかわらず~~~)

>>> bds = '10+6/5-4*2' #    
>>> m = re.sub(r'([*+-/])', ' \1 ', bds) #   \1        !!
>>> m
 '10 + 6 / 5 - 4 * 2'


2.置換文字にパラメータを含むg<1>

>>> bds = '10+6/5-4*2' #    
>>> m = re.sub(r'([*+-/])', ' \g<1> ', bds)
>>> m
 '10 + 6 / 5 - 4 * 2'


3.モードにもパラメータ1を含めることができます

>>> greed = "Hello Jack! Are you OK, Jack?"
>>> m = re.sub(r"Hello (\w+)! Are you OK, \1?", "\g<1>", greed)
>>> m
"Hello Jack! Are you OK, Jack?"


4.モードには、パラメータも含まれます.名前付きグループ(?P=yourname)

>>> greed = "Hello Jack! Are you OK, Jack?"
>>> m = re.sub(r"Hello (?P\w+)! Are you OK, (?P=yourname)?", "\g", greed)
>>> m
"Hello Jack! Are you OK, Jack?"


PS:ここでは、非常に便利な正規表現ツールを2つ提供します.
JavaScript正規表現オンラインテストツール:http://tools.jb51.net/regex/javascript
正規表現オンライン生成ツール:http://tools.jb51.net/regex/create_reg
Pythonに関する詳細は、「Python正規表現用法総括」、「Pythonデータ構造とアルゴリズムチュートリアル」、「Python関数使用テクニック総括」、「Python文字列操作テクニック要約」、「Python入門と進級経典チュートリアル」、「Pythonファイルとディレクトリ操作テクニック要約」のトピックを参照してください.
ここではPythonプログラムの設計に役立つことを願っています.