#メタ文字
. 改行を除く任意の文字列
\ メタ文字のエスケープ
#文字種
\d 0-9
\D \d以外
\w a-z,A-Z,0-9,_
\W \w以外
\s スペース、タブ、改行
\S \s以外
#量指定子
{n} n個
{min,max} min以上 max以下
{min,} min以上
? {0,1}
- {1,}
- {0,}
01-2345-6789
0123456789
TEL01-2345-6789
T0123456789
上記の全部の検索に引っ掛けたい時の例
\w*\d{2}-?\d{4}-?\d{4}
1番短い文字列にマッチさせる
"apple","orange","grape"
".+"だと全てを1つの文字列として選択してしまうので
".+?"のように量指定子の後に?を追加すると短い文字列にマッチさせる
#アンカー 位置を指定する
\A 始まりを指定
\z 終わりを指定
^ 行の先頭を指定する
$ 行の末尾を指定する
\b 単語の境界を指定する
#選択子
| → or
example.com
example.net
を両方検索で引っ掛けたい時
example.com|netだと後者はnetしか引っ掛からないので、
example.com|example.net または example.(net|com)とする
#文字クラス
[]を使う
[abc] a,b,cのどれか1文字という意味になる
##文字クラス内のメタ文字
^
[^c]とすると否定の意味になり、c以外の文字という意味になる []の直後のみ
[A-F] ABCDEFといった範囲指定の意味
※ただし、文字コードには順番があり、遡っての指定はできない
#改行とタブ
\t タブ
\r\n 改行 Windows
\r v9までのMacOS
\n 改行 v10以降のMacOS、Unix
全てを選択したい場合は
\r\n|\r|\n
#キャプチャ
()
$1,$2,.... ()に保存した文字を取り出して置換で使うことができる
google,https://google.com
という文字列があった場合
(.+),\s?(.+)で検索し、
<a href="$2">$1</a>
で置換することによって
<a href="https://google.com">google</a>
になる
#後方参照
3,7,3,3,4,5,5,6,9,8
で連続した数字の時だけ検索したい場合
(\d),\1としてキャプチャしたものを\1などして使う