如何使用加号(+)和正则表达式的"(0)"验证电话号码?

use*_*040 3 c# regex

我看到很多解决方案来验证Regex的电话号码...但我想在我的电话号码中有一些字符,+31(0)12例如.

如果你有值的字符串+31(0)12-1234567.这是电话号码的正确表示法.你怎么能用Regex验证?

我试过这个:

Regex phonePattern = new Regex(@"\+\d{3}?(\0)\d*\-\d*"); 
Run Code Online (Sandbox Code Playgroud)

我错了什么?

其他例子是: +31(0)6-12345678+31(0)123-123456

Kob*_*uek 7

我也遇到过这个问题,发现在这里没有重复到正则表达式,加+号是一个电话号码.

最后我自己格式化了这个正则表达式:

Regex phonePattern = new Regex(@"\s*(?:\+?(\d{1,3}))?([-. (]*(\d{3})[-. )]*)?((\d{3})[-. ]*(\d{2,4})(?:[-.x ]*(\d+))?)\s*");
Run Code Online (Sandbox Code Playgroud)

在regex 101上看到它

这将匹配:

+nnnnnnnnnn
+nnn-nnn-nn
nnnnnnnnnnn
nnnn-nnnn-n
(nnn)nnnnnn
+(nnn)nnnnn
Run Code Online (Sandbox Code Playgroud)