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的编辑器高大上啊
  • 相关阅读:
    Java实现 LeetCode 211 添加与搜索单词
    跨平台Unicode与UTF8互转代码
    C++转换unicode utf-8 gb2312编码
    c++ ANSI、UNICODE、UTF8互转
    Visual C++ unicode and utf8 转换
    Unicode和UTF-8的关系
    boost uuid 学习笔记
    boost uuid
    Darwin Streaming server 的 Task 类
    VS2010下编译安装DarwinStreamingServer5.5.5
  • 原文地址:https://www.cnblogs.com/flowingfog/p/10022723.html
Copyright © 2011-2022 走看看