C# c正则表达式匹配所有斯里兰卡电话号码

C# c正则表达式匹配所有斯里兰卡电话号码,c#,regex,validation,C#,Regex,Validation,我在谷歌上找不到斯里兰卡电话号码的正则表达式; 格式如下: 775645645 9位 0775645645 10位 +94775645645 它应该以7或0或+94开头。有人能帮我吗。 感谢您的解决方案 让我们构建模式: 所以我们有 string pattern = @"^(?:7|0|(?:\+94))[0-9]{9,10}$"; 测试: string[] tests = new string[] { "775645645", "

我在谷歌上找不到斯里兰卡电话号码的正则表达式; 格式如下:

775645645 9位 0775645645 10位 +94775645645 它应该以7或0或+94开头。有人能帮我吗。 感谢您的解决方案

让我们构建模式:

所以我们有

  string pattern = @"^(?:7|0|(?:\+94))[0-9]{9,10}$";
测试:

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);
结果:

775645645            : Matched
0775645645           : Matched
+94775645645         : Matched
123456669            : Not
1234566698888        : Not
+941234566698888     : Not
+94123456            : Not
有效电话号码类型:-

0771234567

771234567

+94771234567

94771234567

0111234567本地代码


^7 | 0 |?:\+94[0-9]{9,10}$这是一个很酷的站点,非常容易使用。我尝试将此用于angular+94775645645,这给了我不匹配的状态。如果我扣除一个数字,它将显示为有效。我认为语言不是问题,正则表达式对每个人都是一样的,对吗?这是我的代码验证器。模式“^7 | 0 |?:\\+94[0-9]{9,10}$”@Sahan Pasindu Nirmal:请你把评论变成一个问题好吗?用Angular标记它,并不仅仅提供验证器。模式“^7 | 0 |?:\\+94[0-9]{9,10}$”,而是上下文如何在输入数据上应用验证器?在Angular中,我们可以使用此方法指定模式验证。模式完整代码如下所示。registrationForm=this.fb.group{userName:[null,Validators.compose[Validators.maxLength30,Validators.pattern'[a-zA-Z]*',Validators.required]],您遗漏了整个正则表达式的括号,因为它匹配任何以7开头的字符串或任何包含0的字符串,请参见:@Toto:我明白了,很好的捕获!谢谢!您应该使用字符类,而不是这些长的替换,例如[0-25-8]而不是0 | 1 | 2 | 5 | 6 | 7 | 8
775645645            : Matched
0775645645           : Matched
+94775645645         : Matched
123456669            : Not
1234566698888        : Not
+941234566698888     : Not
+94123456            : Not
 String regexPhoneNumber = "^(?:0|94|\\+94)?(?:(11|21|23|24|25|26|27|31|32|33|34|35|36|37|38|41|45|47|51|52|54|55|57|63|65|66|67|81|912)(0|2|3|4|5|7|9)|7(0|1|2|5|6|7|8)\\d)\\d{6}$";