近況報告
エンジニア転職成功しました。YouTubeでエンジニア転職したい方向けに情報発信しています。
正規表現とは
例
//0-9の数値3桁と4桁で、間に-が入る文字列パターンの場合
[0-9]{3}-[0-9]{4}
正規表現でできること
- 正規表現パターンと文字列を指定することで、両者が合致するかどうかを正規表現エンジンが判定できる
- 掲示板への投稿記事から有害なHTMLタグだけを取り除く
- 任意の文章からURL文字列だけを取り出す
- HTMLからタグの情報だけを取り除く
- 人間の為のデータと、システムの為のデータをつなぐ橋渡し
正規表現の基本
- 正規表現によって表された文字列パターン→正規表現パターン と呼ぶ
- 与えられた正規表現パターンが、ある文字列の中に含まれる→文字列が正規表現パターンにマッチする
- 一つの正規表現パターンにもマッチする文字列は複数あることが多い
正規表現の記法の例
特定の文字列にマッチ
パターン |
比較する文字列 |
マッチするか |
/poo/ |
pool |
◯ |
/poo/ |
post |
× |
/ame/ |
My name is Rio. |
◯ |
/Wings/ |
WINGS Project |
× |
いずれかの文字にマッチ
- 特定の文字の1文字にマッチするか
- 先頭に「^」を指定することで、「いずれの文字にもマッチしない」ことも指定する
パターン |
比較する文字列 |
マッチするか |
/[opq]/ |
panda |
◯ |
/[opq]/ |
Panda |
× |
/h[ijk]l/ |
hil |
◯ |
/h[^ijk]l/ |
hill |
× |
/h[^ijk]l/ |
hello |
◯ |
特定範囲の文字にマッチ
- 特定の範囲の1文字にマッチするか
- アルファベットや数値など、同種の文字をパターンとして表したい場合に利用する
パターン |
比較する文字列 |
マッチするか |
/[o-s]/ |
one |
◯ |
/[o-s]/ |
One |
× |
/[o-s]/ |
hil |
◯ |
/[o-sO-S]/ |
one、One |
◯ |
/[1-3]/ |
No.3、best1 |
◯ |
/[1-3]/ |
500yen |
× |
任意の1文字
パターン |
比較する文字列 |
マッチするか |
/p.n/ |
pen、panda |
◯ |
/p.n/ |
plan |
× |
/p..n/ |
plan |
◯ |
先頭/末尾を検出
- 文字列の先頭では^、末尾では$を、特定のパターンがマッチするか確認する際に使用する
パターン |
比較する文字列 |
マッチするか |
/^pla/ |
plan、place |
◯ |
/^pla/ |
replay、splash |
× |
/pla$/ |
apple、people |
◯ |
文字列の繰り返しパターンを表現
パターン |
マッチする文字列 |
マッチしない文字列 |
/po*l/ |
pl、pol、pool、poool |
col |
/po+1/ |
pol、pool、poool |
pl |
/po?l/ |
pl、pol |
pool、col |
/po{2}l/ |
pool |
pol、poool |
/po{2,}l/ |
pool、poool |
pl、pol |
/po{2,3}l/ |
pool、poool |
pol、pooool |
特定の文字セットを表現
パターン |
概要 |
\t |
タブ文字 |
\n |
改行 |
\r |
復帰 |
\d |
数値にマッチ([0-9]と同じ) |
\D |
数値以外にマッチ |
\s |
空白文字にマッチ([ \t\n\f\r]と同じ) |
\S |
空白以外の文字にマッチ([^\s]と同じ) |
\w |
大文字/小文字のアルファベット、数字、アンダースコアにマッチ([a-zA-Z_0-9]と同じ) |
\W |
文字以外にマッチ([^\w]と同じ) |