電話番号のハイフンあり・なしを両方許容するバリデーション

..

コピペ元はこちらです。
https://hacknote.jp/archives/22518/

XXXXRequest.php
return [
    // 電話番号のバリデーション
    'tel_number' => '・・・|regex:/^(0{1}\d{1,4}-{0,1}\d{1,4}-{0,1}\d{4})$/',
]

ワタシ正規表現ゼンゼンワカラナイ。
コピペだけではアレなので、調べながらなんとか読んでみます。(間違ってたら指摘してください)

市外局番部分

'^(0{1}\d{1,4}'

「行頭は0一文字固定の1~4桁の数列」

^は行頭にマッチする。
{n} は、直前の文字をn回繰り返す。

\dは「0~9までの数字」というパターンの省略形。
それが1~4回繰り返される。

ハイフン

'-{0,1}'

ハイフンが0~1回繰り返される、つまりあってもなくてもいい。

市内局番部分

'\d{1,4}'

0~9までの数字が1~4回。

加入者番号

'\d{4})'

0~9までの数字が4回。

ここまでのすべてを()で囲って、ひとつのグループとする。