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的编辑器高大上啊
  • 相关阅读:
    Windows脚本转换Liunx识别并执行
    分布式事物常见解决方案
    SIMD加速计算矩阵(组成原理实验5)
    Code-server搭建web IDE
    CentOS 8 修改SSH端口
    Floyd算法的原理和实现代码
    initNativeTransServiceId . ntrans:object componentId :-368613127 微信小程序
    对象搜索算法挑战
    微信小程序小窗无效
    《六层楼》--宋东野
  • 原文地址:https://www.cnblogs.com/flowingfog/p/10022723.html
Copyright © 2011-2022 走看看