HomeLeetcode193. Valid Phone Numbers - Leetcode Solutions

193. Valid Phone Numbers – Leetcode Solutions

Description

Given a text file file.txt that contains a list of phone numbers (one per line), write a one-liner bash script to print all valid phone numbers.

You may assume that a valid phone number must appear in one of the following two formats: (xxx) xxx-xxxx or xxx-xxx-xxxx. (x means a digit)

You may also assume each line in the text file must not contain leading or trailing white spaces.

Examples:

Assume that file.txt has the following content:

987-123-4567
123 456 7890
(123) 456-7890

Your script should output the following valid phone numbers:

987-123-4567
(123) 456-7890

Solution in Bash

Bash
grep -P '^(\(\d{3}\) \d{3}-\d{4}|\d{3}-\d{3}-\d{4})$' file.txt

Explanation

  • grep -P: Enables Perl-compatible regular expressions (PCRE), which are more powerful and flexible.
  • ^(\(\d{3}\) \d{3}-\d{4}|\d{3}-\d{3}-\d{4})$: The regular expression pattern matches either of the following:
    • \(\d{3}\) \d{3}-\d{4}: Matches phone numbers in the format (xxx) xxx-xxxx.
    • \d{3}-\d{3}-\d{4}: Matches phone numbers in the format xxx-xxx-xxxx.
  • file.txt: The input file containing the phone numbers.
Subscribe
Notify of

0 Comments
Inline Feedbacks
View all comments

Popular