gpt4 book ai didi

java - 德国电话号码格式的正则表达式

转载 作者:可可西里 更新时间:2023-10-31 22:09:34 25 4
gpt4 key购买 nike

我尝试从德语格式的字符串中获取电话号码。但我没有让它完全运行。输入文本是一个包含大量内容的完整 HTML 页面,而不仅仅是数字。

可能的格式:

(06442) 3933023     
(02852) 5996-0
(042) 1818 87 9919
06442 / 3893023
06442 / 38 93 02 3
06442/3839023
042/ 88 17 890 0
+49 221 549144 – 79
+49 221 - 542194 79
+49 (221) - 542944 79
0 52 22 - 9 50 93 10
+49(0)121-79536 - 77
+49(0)2221-39938-113
+49 (0) 1739 906-44
+49 (173) 1799 806-44
0173173990644
0214154914479
02141 54 91 44 79
01517953677
+491517953677
015777953677
02162 - 54 91 44 79
(02162) 54 91 44 79

我试过:

$regex =  '~(?:\+?49|0)(?:\s*\d{3}){2}\s*\d{4,10}~';
if(preg_match_all($regex, $input_imprint , $matches)){
print_r($matches);
}

但它不仅仅匹配几种格式。我不知道该怎么做。

最佳答案

这是一个匹配所有格式的正则表达式。我会建议然后替换所有不需要的字符,你会得到你想要的结果。

(\(?([\d \-\)\–\+\/\(]+)\)?([ .\-–\/]?)([\d]+))

如果您需要最小长度来匹配您的数字,请使用:

(\(?([\d \-\)\–\+\/\(]+){6,}\)?([ .\-–\/]?)([\d]+))

https://regex101.com/r/CAVex8/143

已更新,感谢@Willi Mentzel 的建议

关于java - 德国电话号码格式的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41538589/

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