zoukankan      html  css  js  c++  java
  • LeetCode 193. Valid Phone Numbers

    分析

    难度 易

    来源

    https://leetcode.com/problems/valid-phone-numbers/

    题目

    Given a text file file.txt that contains list of phone numbers (one per line), write a one liner bash script to print all valid phone numbers.

    You may assume that a valid phone number must appear in one of the following two formats: (xxx) xxx-xxxx or xxx-xxx-xxxx. (x means a digit)

    You may also assume each line in the text file must not contain leading or trailing white spaces.

    Example:

    Assume that file.txt has the following content:

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

    Your script should output the following valid phone numbers:

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

    https://leetcode.com/problems/valid-phone-numbers/discuss/55478/Grep-e-solution-with-detailed-explanation-good-for-those-new-to-regex

    1 grep -e '(^[0-9]{3}-[0-9]{3}-[0-9]{4}$)' -e '(^([0-9]{3})[ ]{1}[0-9]{3}-([0-9]{4})$)'  file.txt
    1. In Bash, we use to escape next one trailing character;
    2. ^ is used to denote the beginning of a line
    3. $ is used to denote the end of a line
    4. {M} is used to denote to match exactly M times of the previous occurence/regex
    5. (...) is used to group pattern/regex together

    Back to this problem: it requires us to match two patterns, for better readability, I used -e and separate the two patterns into two regexes, the first one matches this case: xxx-xxx-xxxx and the second one matches this case: (xxx) xxx-xxxx

    加上-P(使用Perl的正则引擎)即可过滤出目标数据
    1 grep -P '^(d{3}-|(d{3}) )d{3}-d{4}$' file.txt
    注意上方的空格 
    1 grep '^(d{3}-|(d{3})[ ]{1})d{3}-d{4}$'  file.txt
    这里使用[ ]{1}表示一个空格
    博客园的编辑器没有CSDN的编辑器高大上啊
  • 相关阅读:
    linux下给U盘分区&制作文件系统
    迭代器 配接器
    仿函数
    在查询用户的权限的时候 使用左外连接 和 access数据库中左外连接
    C# 想要程序文件移动 而数据保持相对位置
    C# 第三方控件 下面的Item不显示了
    C# 第三方控件 错误 LC-1
    c# 第三方控件 闪退
    access 语句错误
    poj 1469(二分图 最大匹配)
  • 原文地址:https://www.cnblogs.com/flowingfog/p/10022723.html
Copyright © 2011-2022 走看看