我需要一个能够匹配1-434-555-1212
或434-555-1212
或(434)555-1212
或555-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\}\)'
答案 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- \)? '?'用于可选字符。现在只需三个条件步骤即可完成此操作。我删除了第三个,它仍然有效。还删除了连字符的转义序列。