Python で正規表現を使うときのエラー対策

正規表現を使うときは,正規表現のエラーチェックをきちんと実装しておいたほうが安全です

例外を使って実装すると次のようになります

import re

pattern = "^c++"
prog = None
try:
    prog = re.compile(pattern)
except re.error as msg:
    print("error in regex /%s/; %s" % (pattern, str(msg)))

行頭の c++ にマッチさせたいので正規表現として ^c++ と書いてありますが,これは正しくありません.

上記サンプルコードを実行すると,例外が発生して,エラーメッセージが表示されます.

error in regex /^c++/: multiple repeat at position 3

"multiple repeat"とあるように ++ が連続しているのは正規表現として正しくありません

上記の例だと c++ にマッチさせたいので ^c\+\+ と訂正する必要があります