今回はRegex(正規表現)について学んだのでそれについて書いていきたいと思います。
定義された文字
Regexにおいて定義された文字クラスがあります。これらは簡単で重要なので覚えてしまいましょう。
| 構文 | Matches |
|---|---|
| . | 任意の文字 (行末記号とマッチする場合もある) |
| \d | 数字: [0-9] |
| \D | 数字以外: [^0-9] |
| \s | 空白文字:[ \t\n\x0B\f\r] |
| \S | 非空白文字:[^\s] |
| \w | 単語構成文字:[a-zA-Z_0-9] |
| \W | 非単語文字:[^\w] |
数量子、繰り返し
| 構文 | Matches |
|---|---|
| X? | X、1 または 0 回 |
| X* | X、0 回以上 |
| X+ | X、1 回以上 |
| X{n} | X、n 回 |
| X{n,} | X、n 回以上 |
| X{n,m} | X、n 回以上、m 回以下 |
文字クラス
[]にある文字の中から一つを選ぶと言う意味。よく出てきます。
| 構文 | Matches |
|---|---|
| [abc] | a、b、または c (単純クラス) |
| [^abc] | a、b、c 以外の文字 (否定) |
| [a-zA-Z] | a 〜 z または A 〜 Z (範囲) |
| [a-d[m-p]] | a 〜 d、または m 〜 p:[a-dm-p] 結合 |
| [a-z&&[def]] | d、e、f 交差 |
| [a-z&&[^bc]] | b と c を除く a 〜 z:[ad-z] 減算 |
| [a-z&&[^m-p]] | m 〜 p を除く a 〜 z:[a-lq-z] 減算 |
境界正規表現エンジン
^something$と言う形でよく使われます。
| 構文 | Matches |
|---|---|
| ^ | 行の先頭 |
| $ | 行の末尾 |
| \b | 単語境界 |
| \B | 非単語境界 |
| \A | 入力の先頭 |
| \G | 前回のマッチの末尾 |
| \Z | 最後の行末記号がある場合は、それを除く入力の末尾 |
| \z | 入力の末尾 |
これらが正規表現を学ぶ上で最低限知っておいた方が良いものをピックアップしたものです。
参考にさせていただいた記事にはさらに基本が詳しく書いてあるのでそれも見てみてください。