linux - 匹配电话号码的 grep 表达式

标签 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\}\)'

最佳答案

简化了这个

  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-\)? 这 '?'用于可选字符。您现在只需三个条件步骤即可完成此操作。我删除了第三个,它仍然有效。还删除了连字符的转义序列。

关于linux - 匹配电话号码的 grep 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32876818/

相关文章:

linux - 如何定位最大的目录

linux - 在 linux 下搜索和替换?

linux - 找到两个匹配项,它们之间正好有 `n` 行

linux - 如何让 grep -m1 在 OSX 中工作

regex - Linux:如何仅使用 ls 列出所有文件/目录

macos - 适用于 Mac 的强大搜索替换 GUI 应用程序?

php - 在浏览器中连接oracle

linux - 需要哪个插件才能让 docker.build 在 Jenkins 中工作?

Linux:Recv 随机返回零

Active Directory 根 DN 中的 php ldap_search - 空结果