Problem: 193. 有效电话号码
用正则表达式来匹配电话号码
Code
# Read from the file file.txt and output all valid phone numbers to stdout.
grep -P '^(\(\d{3}\) \d{3}-\d{4}|\d{3}-\d{3}-\d{4})$' file.txt
解决办法
要解决这个问题,你可以使用一个简单的 Bash 脚本,结合 grep 命令和正则表达式来筛选出有效的电话号码。正则表达式是用于匹配特定模式的字符串,非常适合于这类文本筛选任务。
下面是一个示例脚本,可以输出满足条件的电话号码:
grep -P '^(\(\d{3}\) \d{3}-\d{4}|\d{3}-\d{3}-\d{4})$' file.txt
这个命令的解释如下:
grep
: 是一种强大的文本搜索工具。-P
: 表示使用 Perl 兼容的正则表达式。^...$
: 这个正则表达式匹配一整行,^
表示行的开始,$
表示行的结束。\(\d{3}\) \d{3}-\d{4}
: 匹配格式为(xxx) xxx-xxxx
的电话号码。\(
和\)
匹配左右括号。\d{3}
匹配三个数字。xxx-xxxx
匹配剩余的电话号码格式。
|
: 是逻辑“或”操作符,用于匹配两种不同的格式。\d{3}-\d{3}-\d{4}
: 匹配格式为xxx-xxx-xxxx
的电话号码。
这个脚本会从 file.txt
中读取每一行,并输出所有符合上述两种格式的电话号码。