leecode#有效的电话号码#第十行#上升的温度
创始人
2024-03-26 10:42:43
0

题目描述:

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

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

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

分析:

题目的核心是匹配符合规则的字符串,因为规则比较单一,所以使用正则表达式来检索符合要求的字符串即可。

其中的规律列出来,找出固定的字符位置与可变字符的规律

需要用正则表达式中的普通字符、特殊字符、限定符、定位符来描述对应的规律(如上图所示)

使用正则表达式描述规律:

特殊字符:勿忘加上转义符'\'
限定字符:限定字符出现的次数,掌握它也就get了精华,麻麻再也不用担心我读不懂漂亮的表达式了。
定位符:稍加理解,就能get到的好技巧

表达 (xxx) xxx-xxxx

^\([0-9][0-9][0-9]\) [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]$

使用限定符来限定数字出现的次数,优化为如下表达

^\([0-9]{3}\) [0-9]{3}-[0-9]{4}$

 

 表达 xxx-xxx-xxxx

^[0-9][0-9][0-9]-[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]$

优化

^[0-9]{3}-[0-9]{3}-[0-9]{4}$

 同时表示xxx-xxx-xxxx和 (xxx) xxx-xxxx

使用特殊字符()|。用()来标记一个表达式,使用|来指明两项之间的任意选择。

xxx-xxx-xxxx和 (xxx) xxx-xxxx

^([0-9]{3}-|\([0-9]{3}\) )[0-9]{3}-[0-9]{4}$

 grep与awk

grep -P '^([0-9]{3}-|\([0-9]{3}\) )[0-9]{3}-[0-9]{4}$' file.txt
awk '/^([0-9]{3}-|\([0-9]{3}\) )[0-9]{3}-[0-9]{4}$/' file.txt
gawk '/^([0-9]{3}-|\([0-9]{3}\) )[0-9]{3}-[0-9]{4}$/' file.txt

快速查看表

特殊字符表达

限定符表达

题目描述:

给定一个文本文件 file.txt,请只打印这个文件中的第十行

说明:
1. 如果文件少于十行,你应当输出什么?
2. 至少有三种不同的解法,请尝试尽可能多的方法来解题。

分析:

tail -n +10 与 tail -n 10 不一样,-n +10 表示从第 10 行开始显示,若文件不足 10 行则什么也不会输出;-n 10 表示显示最后的 10 行。

代码:

tail -n +10 file.txt | head -1

题目描述:

编写一个 SQL 删除语句来 删除 所有重复的电子邮件,只保留一个id最小的唯一电子邮件。

以 任意顺序 返回结果表。 (注意: 仅需要写删除语句,将自动对剩余结果进行查询)

查询结果格式如下所示。

分析:

表与它自身在电子邮箱列中连接起来

SELECT p1.*
FROM Person p1,Person p2
WHEREp1.Email = p2.Email
;

找到其他记录中具有相同电子邮件地址的更大 ID。所以我们可以像这样给 WHERE 子句添加一个新的条件。

SELECT p1.*
FROM Person p1,Person p2
WHEREp1.Email = p2.Email AND p1.Id > p2.Id
;

已经得到了要删除的记录,所以我们最终可以将该语句更改为 DELETE

DELETE p1 FROM Person p1,Person p2
WHEREp1.Email = p2.Email AND p1.Id > p2.Id

题目描述:

编写一个 SQL 查询,来查找与之前(昨天的)日期相比温度更高的所有日期的 id 。

返回结果 不要求顺序 。

查询结果格式如下例。 

代码:


select cur.id 
from Weather cur 
inner join Weather pre 
where DATEDIFF(cur.recordDate, pre.recordDate) = 1 AND cur.temperature > pre.temperature;

相关内容

热门资讯

将引入私人投资,加州撤回起诉美... 央视记者当地时间12月27日获悉,美国加利福尼亚州已正式撤回此前针对美联邦政府的诉讼,不再挑战联邦政...
增强市场主体获得感 以制度和规... “放得活”与“管得好”,既是一项重要的经济政策要求,也是一种治理智慧。在经济转型升级的关键阶段,把握...
东营集中巡查!抓获违法犯罪人员... 根据上级统一部署 连日来 东营市公安局东营分局 结合岁末年初社会治安特点 对全区治安复杂区域、人员密...
每周股票复盘:金煤科技(600... 截至2025年12月26日收盘,金煤科技(600844)报收于2.94元,较上周的3.0元下跌2.0...
每周股票复盘:武进不锈(603... 截至2025年12月26日收盘,武进不锈(603878)报收于9.94元,较上周的10.14元下跌1...
每周股票复盘:华依科技(688... 截至2025年12月26日收盘,华依科技(688071)报收于33.81元,较上周的32.34元上涨...
每周股票复盘:文灿股份(603... 截至2025年12月26日收盘,文灿股份(603348)报收于19.23元,较上周的19.5元下跌1...
每周股票复盘:中邮科技(688... 截至2025年12月26日收盘,中邮科技(688648)报收于58.51元,较上周的58.49元上涨...
每周股票复盘:蓝科高新(601... 截至2025年12月26日收盘,蓝科高新(601798)报收于8.99元,较上周的8.98元上涨0....
每周股票复盘:红豆股份(600... 截至2025年12月26日收盘,红豆股份(600400)报收于2.42元,较上周的2.5元下跌3.2...