正規表現

  • re 正規表現モジュール

公式サイト:

re – 正規表現操作 | Python 3.x ドキュメント [公式]

使い方

ドキュメント:

正規表現 How To | Python 3.x ドキュメント [公式]

参考:

match / search / sub – 正規表現モジュール re の使い方 | note.nkmk.me

マッチオブジェクト

メソッド
  • expand
  • group
  • __getitem__
  • groups
  • groupdict
  • start
  • end
  • span
プロパティ
  • pos
  • endpos
  • lastindex
  • lastgroup
  • re
  • string

ドキュメント:

マッチオブジェクト | Python 3.x ドキュメント [公式]

参考:

正規表現マッチオブジェクトでマッチした文字列や位置を取得 | note.nkmk.me

グループ

後方参照
  • 番号指定参照 (.*) → \1\2、…
  • 名前付きグループ (?P<group>.*)\g<group>

ドキュメント:

Match.groups | Python 3.x ドキュメント [公式]

Match.groupdict | Python 3.x ドキュメント [公式]

Match.lastindex | Python 3.x ドキュメント [公式]

参考:

正規表現を利用して任意の文字列群を抽出する/名前付きグループを利用する – Qiita

正規表現マッチオブジェクトでマッチした文字列や位置を取得 | note.nkmk.me

re モジュールを使って後方参照をしてみよう! | QlN’s QualificatioN’s

re.sub / replace / regexp – 文字列の置換/単純置換/正規表現置換 | Python Snippets

Handling backreferences to capturing groups in re.sub replacement pattern – Stack Overflow

How to get group name of match regular expression? – Stack Overflow

エスケープ (re.escape)

参考:

attaching raw to string variables – Stack Overflow

match と search の違い

  • match 文字列の先頭から正規表現による検索を行い、合致した部分についてマッチオブジェクトを返す/合致しなかった場合は None を返す
  • search 文字列の任意の部分で正規表現による検索を行い、合致した部分についてマッチオブジェクトを返す/合致しなかった場合は None を返す

match は先頭からのみ検索を行う。任意の部分で正規表現による検索を行いたい場合は search を用いる。

ドキュメント:

search vs. match | Python 3.x ドキュメント [公式]

re.match | Python 3.x ドキュメント [公式]

re.search | Python 3.x ドキュメント [公式]

参考:

match ではなくて search を使う時 | Python 入門

re.match より re.search を使おう – Qiita

What is the difference between re.search and re.match? – Stack Overflow

先読み/後読み

  • (?=pattern) 先読み
  • (?!pattern) 否定先読み
  • (?<=string) 後読み
  • (?<!string) 否定後読み

参考:

正規表現の先読み/後読みを知った話 | 蛇ノ目の記

置換

  • str.replace 文字列を指定回数だけ置換する。(デフォルト無制限)
  • re.sub 正規表現に合致した部分を置換する。
  • re.subn 正規表現に合致した部分を置換し、置換した回数を含めて返す。

ドキュメント:

re.sub | Python 3.x ドキュメント [公式]

re.subn | Python 3.x ドキュメント [公式]

str.replace | Python 3.x ドキュメント [公式]

参考:

replace / translate / re.sub / re.subn – 文字列を置換 | note.nkmk.me

replace / re.sub – 文字列を置換する | UX MILK

正規表現による置換でマッチした文字列に応じて置換する文字列を変化させる – Qiita

re.sub を使った高度な文字列置換 – Qiita

sub / subn – 正規表現にマッチした文字列を新しい文字列に置換する | JavaDrive

string.replace regular expression – Stack Overflow

パターンをコンパイルする (re.compile)

ドキュメント:

re.compile | Python 3.x ドキュメント [公式]

合致する部分を全て列挙する (re.findall)

ドキュメント:

re.findall | Python 3.x Documentation [Official]

参考:

re.findall() 関数 | Python 入門

re.findall 関数と正規表現を使って文字列から部分文字列を抽出するには | @IT

How can I find all matches to a regular expression in Python? – Stack Overflow

リストの文字列との合致を判定する

参考:

How to match any string from a list of strings in regular expressions? – Stack Overflow

If any strings in a list match regex – Stack Overflow

日本語を扱う

参考:

正規表現で漢字/ひらがな/カタカナ/英数字を判定/抽出/カウント | note.nkmk.me

Unicode プロパティを使いたい

参考:

正規表現での漢字マッチを Unicode プロパティーを使って綺麗に書く方法 – Qiita

regex matching Unicode properties – Stack Overflow

まとめ/Tips

ゼロから覚える正規表現の基本と Tips – Qiita

正規表現まとめ | YoheiM .NET

regex

入手:

regex | PyPI

リポジトリ:

mrabarnett/mrab-regex – GitHub

Oniguruma CFFI

入手:

onigurumacffi | PyPI

リポジトリ:

asottile/onigurumacffi: CFII Bindings for Oniguruma Regex Engine – GitHub

記事をシェアする:
タグ:

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Protected by reCAPTCHA