Python正則キャプチャ操作例
1742 ワード
この例では、Pythonの正規キャプチャ操作について説明します.皆さんの参考にしてください.具体的には以下の通りです.
目的:式'10+6/5-4*2'の各演算子に左右にスペース文字を付けて、'10+6/5-4*2'にする
考え方:グループ化、キャプチャ、置換
1.置換文字にはパラメータ1が含まれています(ここではパラメータとは言えませんが、何とは思いもよらないので、それにかかわらず~~~)
2.置換文字にパラメータを含むg<1>
3.モードにもパラメータ1を含めることができます
4.モードには、パラメータも含まれます.名前付きグループ(?P=yourname)
PS:ここでは、非常に便利な正規表現ツールを2つ提供します.
JavaScript正規表現オンラインテストツール:http://tools.jb51.net/regex/javascript
正規表現オンライン生成ツール:http://tools.jb51.net/regex/create_reg
Pythonに関する詳細は、「Python正規表現用法総括」、「Pythonデータ構造とアルゴリズムチュートリアル」、「Python関数使用テクニック総括」、「Python文字列操作テクニック要約」、「Python入門と進級経典チュートリアル」、「Pythonファイルとディレクトリ操作テクニック要約」のトピックを参照してください.
ここでは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プログラムの設計に役立つことを願っています.