【今日のQ&A】正規表現ってなに?

こんにちは、@codeship_techです。

プログラミングを勉強しているとよく出てくる「正規表現」という単語。

今回は、正規表現について講師が解説してくれました!

正規表現って何ですか?

様々な文字列から「共通するパターン」を表現し、識別する方法です。

例えば以下のようなデータから「郵便番号として有効な部分だけ」抜き出すことができます。


郵便番号の要件として

  • 3桁の整数値で始まる
  • ハイフンで区切る
  • 4桁の整数値で終わる

こととしましょう。

529-0439
2519-3613
848-013
028-0061
198-01764
4627084
js
const pattern = /^\d{3}-?\d{4}$/;
const result1 = "529-0439".match(pattern);
console.log(result1); //["529-0439", index: 0, input: "529-0439", groups: undefined]
const result2 = "2519-3613".match(pattern);
console.log(result2) //null
...

  • 正規表現パターンは /表現/と定義します。
  • \dは「数値」を表します。\d一つで一文字です。
  • {3}は直前の表現の3回の繰り返しという意味です。\d{3}で「数値のちょうど3回の繰り返し」という意味になります。
  • ^と$はそれぞれ「^の直後の表現で始まる」「$の直前の表現で終わる」ことを意味します。
  • これにより余分に長い数字列の途中で偶然このパターンにマッチングする(“198-01764”のうち“198-0176″ の部分が偶然マッチしてしまった)場合を除外することができます。
  • 文字列.match(パターン)により、文字列がパターンにマッチしていたら結果が代入され、マッチしていないならnullになります。

これによりマッチしている番号候補とそうでないものを分けて処理を行うことができますね。

正規表現は非常に汎用性が高く、これを習得することで実現できることが飛躍的に増加します。

興味を持ったらぜひ学習してみましょう。

授業日記についてのご意見

CodeShipの授業について「こんな事が知りたい・紹介して」というご意見・ご提案がありましたら、CodeShip公式Twitterアカウント(【CodeShip】プログラミングスクール)までDMまたはリプライにてお寄せください。