正規表現メモ
実は、正規表現ってあまり使ってませんでした。
強いて言えば、エディタで改行を置換したりするぐらいでした。
文字列をいじったりする時は、Excelでやるとか、簡単なプログラムを組むとか。
最近は「簡単な処理はPythonでやってしまおう!」みたいな感じの方もいますが、数千件のデータを扱う訳ではないし、そこまで……ってものは正規表現で良いかなと。
苦手なものを減らしたいってのもありますね。
以下は正規表現の覚書です。
直接文字で検索する(正規表現ではない)をリテラル、
正規表現で検索するやりかたは「メタ文字」と呼ぶ。
「.」 = 改行を除く任意の1文字
「\d」 = 数値
「\w」 = 文字
「\n」 = スペース、改行、タブ
「?」 = 0または1文字 = {0,1}
「+」 = 1文字以上の繰り返し = {1,}
「*」 = 0文字以上の繰り返し = {0,}
「^」(キャレットorハット) = 行の先頭
「$」 = 行の末尾
「\b」 = 単語の境界
※よく使うパターン
.+ = 任意の文字の1文字以上の連続
量指定子
{n} = n個
{min,max} = min以上、max以下
{min,} = min以上
ex:3~6文字の数字
\d{3,6}
選択子
「|」(パイプ)→ 「abc|123」 = abc 又は 123
ex:「example.com」と「example.net」を選択
example.com
example.net
↓
example.com|example.net
又は
example.(com|net)
文字クラス
・[](大括弧)の中のどれか1文字
[abc] = a or b or c
・「^」で否定([の直後のみ)
[^cb] = c もしくは b 以外
・ 範囲指定
「-」で範囲を指定できる(文字コード順)
ex:
[A-F]
・文字クラス内でのエスケープ処理
次の文字はエスケープの必要がある
^, -, \ , ]
.(ドット)はエスケープの必要なし
^(キャレット)は先頭以外であればエスケープの必要無し
タブ、改行
「\t」= タブ
「\r\n」 = 改行(Windows)
「\r」 = 改行(v9までのMacOS)
「\n」 = 改行(Unix、v10以降のMacOS)
「\r\n|\r|\n」ですべての開業に対応できる
ex:Windowsで連続改行を置換する場合
(\r\n)+
↓
\r\n
キャプチャ
()で括ると$1,$2……として変数のように扱える
hoge, http//hogehoge.com
google,http//google.com
exsample, http//exsample.com
↓
(.+),\s?(.+)
<a href = “$2">$1</a>
↓
<a href = “http//hogehoge.com">hoge</a>
<a href = “http//google.com">google</a>
<a href = “http//exsample.com">exsample</a>
後方参照
()でキャプチャした値を「バックスラッシュ+数値」で参照する
3, 8, 5, 4, 4, 5, 1, 1, 5, 3, 3
↓
(\d),\s\1
↓
3, 8, 5, 4, 4, 5, 1, 1, 5, 3, 3
ディスカッション
コメント一覧
まだ、コメントがありません