正規表現で角括弧内でエスケープせずに使える特殊文字

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

.*?$|
エスケープ不要です。

^
エスケープ必要です。
^には
[^x]
と書くと否定の意味になるからです。

( )
エスケープ不要です。
ただし(についてはFutureWarningが発生します。

[ ]
エスケープ不要です。

コメント

タイトルとURLをコピーしました