Sam*_*ewa -2 c# regex validation
我没有找到任何关于谷歌的正则表达式为斯里兰卡的电话号码 ; 格式为:
775645645
(9位数字)0775645645
(10位数字)+94775645645
它应以7或0或+94开头。谁能帮我这个。赞赏您的解决方案。
让我们来构建pattern
:
^ - anchor (string start)
7|0|(?:\+94) - either 7 or 0 or +94
[0-9]{9,10} - from 9 up and including to 10 digits (chars on [0-9] range)
$ - anchor (string end)
Run Code Online (Sandbox Code Playgroud)
所以我们有
string pattern = @"^7|0|(?:\+94)[0-9]{9,10}$";
Run Code Online (Sandbox Code Playgroud)
测试:
string[] tests = new string[] {
"775645645",
"0775645645",
"+94775645645",
"123456669",
"1234566698888",
"+941234566698888",
"+94123456"
};
string pattern = @"^7|0|(?:\+94)[0-9]{9,10}$";
string report = string.Join(Environment.NewLine, tests
.Select(item => $"{item,-20} : {(Regex.IsMatch(item, pattern) ? "Matched" : "Not")}"));
Console.Write(report);
Run Code Online (Sandbox Code Playgroud)
结果:
775645645 : Matched
0775645645 : Matched
+94775645645 : Matched
123456669 : Not
1234566698888 : Not
+941234566698888 : Not
+94123456 : Not
Run Code Online (Sandbox Code Playgroud)