萬九郎の硬い船

プログラミング学習記録など

正規表現への苦手意識を克服する

正規表現には苦手意識があった。正確には苦手というより憶えるのが面倒臭く、必要になる場面ではそのたびごとにググって調べ、すぐ忘れてしまう、というパターンである。ただ、人生のこのタイミングでがっつりPythonを学習するにあたって、さすがに避けて通れない道である気がするし、本の中でも優しく説明されている(面倒臭がりが本当に多いのだろう)。せっかくなので、この機会に身につけてしまいたい。 正規表現を検証するRegexPalのようなサイトも存在するので、トレーニングとして試してみようと思う。 よく使われる正規表現は以下のとおり。最低限これらは叩き込んでおきたい。

  • ():グループ化
  • *:直前の文字(文字グループ)0個以上
  • +:直前の文字(文字グループ)1個以上
  • 内のどれか1文字
  • [^]:[]内以外の1文字
  • {n}:直前の文字(文字グループ)がn個
  • {n,}:直前の文字(文字グループ)がn個以上
  • {,n}:直前の文字(文字グループ)が0〜n個
  • {m,n}:直前の文字(文字グループ)がm〜n個(貪欲)
  • {m,n}?:直前の文字(文字グループ)がm〜n個(非貪欲)
  • |:または
  • .:改行以外の1文字(ワイルドカード
  • .*:あらゆる文字列(貪欲)
  • .*?:あらゆる文字列(非貪欲)
  • \:エスケープ文字
  • ^:先頭
  • $:末尾
  • ?:直前の文字(文字グループ)が0個か1個
  • \d:0〜9の数字
  • \D:0〜9の数字以外
  • \w:文字または数字またはアンダーライン
  • \W:文字数字アンダーライン以外
  • \s:空白文字(スペース・タブ・改行)
  • \S:空白文字以外

スクレイピングする際に、「余分なものを除外する」上で正規表現は非常に役立つ。 なお、Python正規表現を使う場合は

import re

として正規表現ライブラリを読み込む必要がある。