Leetcode Note: Bash - Valid Phone Numbers

Valid Phone Numbers - LeetCode
https://leetcode.com/problems/valid-phone-numbers/

  • Bash で取り組んだメモ

所感

  • まさかの Bash の問題
  • 2つ のフォーマットだけ抽出すつ
    1. (xxx) xxx-xxxx
    2. xxx-xxx-xxxx
  • 地味に難しい

回答

Grep -e solution with detailed explanation, good for those new to regex - LeetCode Discuss
https://leetcode.com/problems/valid-phone-numbers/discuss/55478/Grep-e-solution-with-detailed-explanation-good-for-those-new-to-regex

grep -e '\(^[0-9]\{3\}-[0-9]\{3\}-[0-9]\{4\}$\)' -e '\(^([0-9]\{3\})[ ]\{1\}[0-9]\{3\}-\([0-9]\{4\}\)$\)' file.txt
  • grep の -e オプションは正規表現の指定
    • 複数指定しても OK
  • '\(^[0-9]\{3\}-[0-9]\{3\}-[0-9]\{4\}$\)'
    • xxx-xxx-xxxx を表す正規表現
    • 先頭から数値 3つ
    • ハイフン
    • 数値 3つ
    • ハイフン
    • 数値 4つ
  • '\(^([0-9]\{3\})[ ]\{1\}[0-9]\{3\}-\([0-9]\{4\}\)$\)'
    • (xxx) xxx-xxxx を表す正規表現
    • 括弧
    • 先頭から数値 3つ
    • 括弧閉じ
    • スペース 1つ
    • 数値 3つ
    • ハイフン
    • 数値 4つ