gpt4 book ai didi

regex - Grep 正则表达式 : How to find multiple area codes in phone number?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:05:00 25 4
gpt4 key购买 nike

我有一个文件:每一行由一个名字、房间号、住所地址、电话号码组成。

我想搜索区号为 404 或 202 的线路。我做了“(404)|(202)”,但它也给了我电话号码中的数字而不是区号的行,例如:

John Smith 300 123 N. Street 808-543-2029

我不想要上面的内容,我的目标是这样的行,示例:

Danny Brown 173 555 W. Avenue 202-383-1540
Martha Keith 567 322 S. Example 404-653-1200

最佳答案

让我们考虑这个测试文件:

$ cat addresses
John Smith 202 404 N. Street 808-543-2029
Danny Brown 173 555 W. Avenue 202-383-1540
Martha Keith 567 322 S. Example 404-653-1200

与其他三位数字不同,区号的显着特征是它们前面有一个空格,后面有一个 -。因此,使用:

$ grep -E ' (202|404)-' addresses
Danny Brown 173 555 W. Avenue 202-383-1540
Martha Keith 567 322 S. Example 404-653-1200

更复杂的例子

假设电话号码出现在行尾,但可以是 808-543-20298085432029808 543 2029 三种形式中的任何一种 如以下示例所示:

$ cat addresses
John Smith 202 404 N. Street 808-543-2029
Danny Brown 173 555 W. Avenue 2023831540
Martha Keith 567 322 S. Example 404 653 1200

要选择区号为 202 或 404 的线路:

$ grep -E ' (202|404)([- ][[:digit:]]{3}[- ][[:digit:]]{4}|[[:digit:]]{7})$' addresses
Danny Brown 173 555 W. Avenue 2023831540
Martha Keith 567 322 S. Example 404 653 1200

如果电话号码后面可能有零散的空格,则使用:

$ grep -E ' (202|404)([- ][[:digit:]]{3}[- ][[:digit:]]{4}|[[:digit:]]{7})[[:blank:]]*$' addresses
Danny Brown 173 555 W. Avenue 2023831540
Martha Keith 567 322 S. Example 404 653 1200

关于regex - Grep 正则表达式 : How to find multiple area codes in phone number?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48820773/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com