10/28に書いた正規表現に関しての追記です。
Contents
覚えておきたいメタ文字
よく出るメタ文字の復習です。
メタ文字 | メタ文字の説明 |
[] | いずれかの1文字 [abc]はaかbかcのどれか |
[^~] | ~以外のどれか |
– | []内で使われると範囲。例[a-z]はaからzまで。そうでなければ普通の文字と一緒 |
. | 任意の1文字 |
() | 内部でマッチした文字のキャプチャ、グループ化 |
? | 直前の文字やパターンが1回、もしくは0回(最短一致) |
* | 直前のパターンが0回以上連続 |
+ | 直前のパターンが1回以上連続 |
{n,m} | 直前の文字パターンがn回以上、m回以下 |
| | or条件を作る |
^ | 行頭 |
$ | 行末 |
\ | メタ文字のエスケープ。その他\n,\w等を作る |
例えばhtmlのselectタグのoptionのvalueを抜くことを考えてみましょう。
これは下記正規表現で抽出することができます。
1 |
<option value="([0-9a-zA-Z]+)".>.*+<\/option> |
留意点
- +や*は汎用性が高すぎるので特に文字をキャッチしさせる場合は半角英数だけの場合は\wなどで代用するか?などで最短一致を考える
- +や*はパフォーマンス的にも遅いのでできるだけ制約の多い文字にする。
- 個人的にはスクレイピングをすると正規表現に強くなるかと思いますので、お勧めです。
- エスケープ文字を/するのを忘れないようにする。エスケープする必要がないのに\をしないように。
- タブ文字(\t,\nなど)に注意
言語によって違いは若干あるかもです