码迷,mamicode.com
首页 > 编程语言 > 详细

每日算法-Shell-有效电话号码

时间:2021-06-02 10:54:40      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:正则表达   grep   https   --   numbers   ems   one   div   xxxx   

给定一个包含电话号码列表(一行一个电话号码)的文本文件 file.txt,写一个单行 bash 脚本输出所有有效的电话号码。

你可以假设一个有效的电话号码必须满足以下两种格式: (xxx) xxx-xxxx 或 xxx-xxx-xxxx。(x 表示一个数字)

你也可以假设每行前后没有多余的空格字符。

假设 file.txt 内容如下:

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

你的脚本应当输出下列有效的电话号码:

987-123-4567
(123) 456-7890

 

解题思路:

想要完成该题首先要了解正则表达式详细了解可看:

根据预期输出值,我们将号码分为两部分,第一部分为987-或者(123) <--此处有空格,第二部分为123-4567。

由此可以得出第一部分正则表达式为:

^(\d{3}-|\(\d{3}\) )

第二部分的正则表达式为:

\d{3}-\d{4}$

所以使用grep命令即为

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

  

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/valid-phone-numbers

每日算法-Shell-有效电话号码

标签:正则表达   grep   https   --   numbers   ems   one   div   xxxx   

原文地址:https://www.cnblogs.com/sgcm/p/14811550.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!