我正在尝试为电话号码做一个正则表达式。我正在使用命名捕获,所以希望我的正则表达式会更容易理解。
^(?<country_code>1|808)?(?<area_code>\d{3})?(?<local_number>\d{7})$
假设如下:
- 所有区号均为 3 位数
- 所有本地号码均为 7 位数字
- 只有 2 个国家代码:1 和 808
测试:
12025551212
<-- 1 202 55512122025551212
<-- 202 55512128082025551212
<-- 808 202 55512128085551212
<-- 这里有问题
最后一个测试的问题是正则表达式认为808
是国家代码。虽然是,但在这个字符串中,808
代表区号。我应该如何修改我的正则表达式,以便将 808 解释为区号而不是国家/地区代码?