用于匹配电话号码的grep表达式

时间:2015-09-30 22:51:43

标签: linux grep

我需要一个能够匹配1-434-555-1212434-555-1212(434)555-1212555-1212形式的电话号码的正则表达式。

除了以1开头的表格外,我已经得到了所有这些。

grep -o '\([0-9]\{3\}\-[0-9]\{3\}\-[0-9]\{4\}\)\|\(([0-9]\{3\})[0-9]\{3\}\-[0-9]\{4\}\)\|\([0-9]\{3\}\-[0-9]\{4\}\)\|\(1-[0-9]\{3\}\-[0-9]\{4\}\)'

1 个答案:

答案 0 :(得分:0)

简化了这个

  grep -o '
    \([0-9]\{3\}-[0-9]\{3\}-[0-9]\{4\}\)\|
    \(([0-9]\{3\})[0-9]\{3\}-[0-9]\{4\}\)\|
    \(\(1-\)?[0-9]\{3\}-[0-9]\{4\}\)' phones.txt

1-434-555-1212
434-555-1212
(434)555-1212
555-1212

将您的上一个条件更改为\(1- \)? '?'用于可选字符。现在只需三个条件步骤即可完成此操作。我删除了第三个,它仍然有效。还删除了连字符的转义序列。