题目:193.有效的电话号码

题目来源:

        leetcode题目,网址:193. 有效电话号码 - 力扣(LeetCode)

解题思路:

        该题目分为两个部分,一个时读取 file.txt 每行的内容,另一个时判断内容是否符合要求。

读取同过while循环逐行读取,判断是否符合要求使用正则表达式。

解题代码:

 
# 多行
# Read from the file file.txt and output all valid phone numbers to stdout.
file='file.txt'
pat1="^[0-9][0-9][0-9][-][0-9][0-9][0-9][-][0-9][0-9][0-9][0-9]$"
pat2="^[(][0-9][0-9][0-9][)][ ][0-9][0-9][0-9][-][0-9][0-9][0-9][0-9]$"
while read line; do  
if [[ $line =~ $pat1 ]] || [[ $line =~ $pat2 ]];        #不能使用[] ,会报错
then 
    echo $line
fi
done < $file

正则再优化
# Read from the file file.txt and output all valid phone numbers to stdout.
file='file.txt'
pat1="^([0-9]{3}[-]|[(][0-9]{3}[)][ ])[0-9]{3}[-][0-9]{4}$"
while read line; do  
if [[ $line =~ $pat1 ]] ;    
then 
    echo $line
fi
done < $file

#使用grep
# Read from the file file.txt and output all valid phone numbers to stdout.
grep -E "^([0-9]{3}[-]|[(][0-9]{3}[)][ ])[0-9]{3}[-][0-9]{4}$" file.txt

总结:

        bash 和正则表达式都不会,现学现卖。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值