== 正規表現

正規表現は、文字列のパターンを表現するための記法である。
これにより、特定の条件を満たす文字列を効果的に検索したり、置換したりすることができる。
基本的な正規表現を以下に示すが，正規表現のあとにコロン`:`を付与するため注意してほしい。

=== Character Class：文字

- [abc]: いずれか一つ
  - => a, b, c
- [^abc]: 含まない
  - => d など

=== Metacharacters：メタ文字

- `.`: 任意の1文字
- `\n`: 改行コード
- `^`: 行の先頭
- `$`: 行の末尾
- `\d`: 半角数字
- `\s`: 空白
- `\S`: 空白以外すべて
- `\w`:半角英数字とアンダースコア
- `\l`:半角英小文字
- `\u`:半角英大文字

=== Quantifiers：量指定

- `*`: 直前の要素が0回以上繰り返し（ワイルドカードともいう）
- `+`: 直前の要素が1回以上繰り返し
- `?`: 直前の要素が0回または1回
- {n}: 直前のパターンをn回繰り返し

=== Grouping : グルーピング

- (): 括弧内のパターンを1つの要素として扱う

== 正規表現の例

電話番号は以下の正規表現が適用できる。

```re
^(\d{3}-\d{4}-\d{4}|\d{10})$
```

ハイフンを含む形式（例: 123-4567-8901）またはハイフンなしの形式（例: 1234567890）にマッチする。