正規表現の特殊文字は、文字そのものとして使う場合はエスケープする必要があります。
しかし文字の集合を指定する場合の角括弧内で使う場合はエスケープが不要となる場合があります。
.*?()[]^$|
について調べてみました。Python3.7で確認しました。
.*?$|
エスケープ不要です。
^
エスケープ必要です。
^には
[^x]
と書くと否定の意味になるからです。
( )
エスケープ不要です。
ただし(についてはFutureWarningが発生します。
[ ]
エスケープ不要です。
コメント