有效电话号码

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

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

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

  • 示例:

假设 file.txt 内容如下:

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

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

987-123-4567
(123) 456-7890
grep -P '^([0-9]{3}-|\([0-9]{3}\) )[0-9]{3}-[0-9]{4}$' file.txtawk '/^([0-9]{3}-|\([0-9]{3}\) )[0-9]{3}-[0-9]{4}$/' file.txtgawk '/^([0-9]{3}-|\([0-9]{3}\) )[0-9]{3}-[0-9]{4}$/' file.txt

来源:力扣(LeetCode
参考连接

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/375536.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JSP中RequestDispatcher的用法

RequestDispatcher是一个Web资源的包装器&#xff0c;可以用来把当前request传递到该资源&#xff0c;或者把新的资源包括到当前响应中。RequestDispatcher接口中定义了两个方法&#xff1a;include/forward 由于<jsp:include>只能指定固定的jsp文件名&#xff0c;不能动…

TCP/IP三次握手与四次握手

原文地址 http://blog.csdn.net/whuslei/article/details/6667471 http://blog.csdn.net/wo2niliye/article/details/48447933 建立TCP需要三次握手才能建立&#xff0c;而断开连接则需要四次握手。整个过程如下图所示&#xff1a; 先来看看如何建立连接的。 首先Client端发送连…

vim支持nginx语法高亮

下载nginx源码&#xff0c;解压之后&#xff0c;将contribu/vim/*拷贝到~/.vim/目录&#xff0c;如果没有~/.vim/目录&#xff0c;则创建即可。 cp -r contrib/vim/* ~/.vim/或 mkdir -p ~/.vim/ cp -r contrib/vim/* ~/.vim/此时再打开conf/nginx.conf就可以看到已经语法高亮…

Delphi 正则表达式语法(4): 常用转义字符与 .

Delphi 正则表达式语法(4): 常用转义字符与 . // \d 匹配所有数字, 相当于 [0-9] varreg: TPerlRegEx; beginreg : TPerlRegEx.Create(nil);reg.Subject : 期待Delphi 2008 for Win32&#xff01;;reg.RegEx : \d;reg.Replacement : ◆;reg.ReplaceAll;ShowMessage(reg.Subje…

C语言操作mysql

php中 mysqli, pdo 可以用 mysqlnd 或 libmysqlclient 实现 前者 从 php 5.3.0起已内置到php中, 并且支持更多的特性&#xff0c;推荐用 mysqlnd mysqlnd &#xff0c; libmysqlclient 对比&#xff1a;http://php.net/manual/en/mysqlinfo.library.choosing.php mysqlnd 目前是…

Hadoop DistributedCache分布式缓存的使用

转载请注明&#xff1a;http://www.cnblogs.com/demievil/p/4059141.html 我的github博客&#xff1a;http://demievil.github.io/ 做项目的时候遇到一个问题&#xff0c;在Mapper和Reducer方法中处理目标数据时&#xff0c;先要去检索和匹配一个已存在的标签库&#xff0c;再对…

每日温度

根据每日 气温 列表&#xff0c;请重新生成一个列表&#xff0c;对应位置的输出是需要再等待多久温度才会升高超过该日的天数。如果之后都不会升高&#xff0c;请在该位置用 0 来代替。 例如&#xff0c;给定一个列表 temperatures [73, 74, 75, 71, 69, 72, 76, 73]&#xf…

什么是Modbus

什么是Modbus 1. Modbus如何工作 Modbus是通过设备之间的几根连线来传递数据&#xff0c;最简单的设置就是主站和从站之间用一跟串口线相连。数据通过一串0或者1来传递&#xff0c;也就是位。0为正电压&#xff0c;1为负电压。位数据传递速度非常快&#xff0c;常见的传输速度为…

博客刚刚开通!

今天老贼开播了&#xff01;以后请大家多多关照&#xff01; 转载于:https://www.cnblogs.com/xiaosayi/p/4065313.html

Android实例-拍摄和分享照片、分享文本(XE8+小米2)

结果&#xff1a; 1.分享文本不好使&#xff0c;原因不明。有大神了解的&#xff0c;请M我&#xff0c;在此十分感谢。 2.如果想支持图片编辑&#xff0c;将Action事件的Editable改为True。 相关资料&#xff1a; 官网地址&#xff1a;http://docwiki.embarcadero.com/RADStudi…

go语言 expected ; found a

错误代码&#xff0c;这是一段测试go语言类型转换的代码 package type_testimport "testing"type MyInt int64func TestImplicit(t *testing.T) {var a int32 1var b int64 3b (int64)avar c MyInt 4// c bt.Log(a, b, c) }报错代码 b (int64)a改正 b int6…

win8 metro 调用摄像头拍摄照片并将照片保存在对应的位置

刚刚做过这类开发&#xff0c;所以就先献丑了&#xff0c;当然所贴上的源代码都是经过验证过的&#xff0c;已经执行成功了&#xff0c;希望能够给大家一些借鉴&#xff1a; 以下是metro UI代码&#xff1a; <Pagex:Class"Camera.MainPage"xmlns"http://sche…

poj 3678 Katu Puzzle(2-sat)

Description Katu Puzzle is presented as a directed graph G(V, E) with each edge e(a, b) labeled by a boolean operator op (one of AND, OR, XOR) and an integer c (0 ≤ c ≤ 1). One Katu is solvable if one can find each vertex Vi a value Xi (0 ≤ Xi ≤ 1) suc…

go 语言 first argument to append must be slice

错误代码 func TestSliceGrowing(t *testing.T) {s : [4]int{1, 2, 3, 4}for i :0; i<10; i {s append(s, i)t.Log(len(s), cap(s))} }报错代码 s append(s, i)原因&#xff1a;append的第一个参数必须是切片 更正 func TestSliceGrowing(t *testing.T) {s : []int{1,…

豆瓣网静态页面

divcss网站登录注册豆瓣读书视频 音乐同城小组阅读 豆瓣FM东西更多豆瓣视频 影讯&购票电视剧排行榜 分类影评预告片 向后向前3/5正在热映全部正在热映>>即将上映 烈日灼心 4.7终结者&#xff1a;创世纪... 4.7百团大战 4.7刺客&#xff1a;聂隐娘 4.7近期热门更多影视…

C++并发编程实战(豆瓣评分5.4)

评分已说明一切&#xff0c;切勿踩坑&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 推荐的翻译 C并发编程实战 关注公众号回复【C并发编程实…

Please use boost/bind/bind.hpp + using namespace boost::placeholders

The practice of declaring the Bind placeholders (_1, _2, …) in the global namespace is deprecated. Please use <boost/bind/bind.hpp> using namespace boost::placeholders, or define BOOST_BIND_GLOBAL_PLACEHOLDERS to retain the current behavior. 提示w…

奔跑吧,兄弟

10月底的时候&#xff0c;不能忍受老婆的奚落&#xff0c;开始了我的跑步计划。 说说&#xff0c;跑步需要注意的事项&#xff0c;首先你得有双跑步鞋&#xff0c;我有一次是穿了薄底鞋跑的&#xff0c;结果&#xff0c;打满了水泡。跑步前控制饮水&#xff0c;最好在饮食后2个…

2299 Ultra-QuickSort(归并)

合并排序第一次。连环画看着合并看着别人的博客的想法。http://poj.org/problem?id2299 #include <stdio.h> #include <stdlib.h>#define MAX 500001int n,a[MAX], t[MAX]; long long int sum;//归并 void Merge(int l, int m, int r) {int p0;int il, jm1;while…

由openSession、getCurrentSession和HibernateDaoSupport浅谈Spring对事物的支持

由openSession、getCurrentSession和HibernateDaoSupport浅谈Spring对事物的支持 Spring和Hibernate的集成的一个要点就是对事务的支持&#xff0c;openSession、getCurrentSession都是编程式事务&#xff08;手动设置事务的提交、回滚&#xff09;中重要的对象&#xff0c;Hi…