C# 如何建立印度尼西亚电话号码正则表达式
这些是印度尼西亚的一些电话号码 08xxxxxxxxx(由最少11个字符组成) 08XXXXXXXXXX(始终以08开头) 我发现这个很有用C# 如何建立印度尼西亚电话号码正则表达式,c#,regex,C#,Regex,这些是印度尼西亚的一些电话号码 08xxxxxxxxx(由最少11个字符组成) 08XXXXXXXXXX(始终以08开头) 我发现这个很有用 Regex regex = new Regex(@"08[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]"); 但是,如果我把它们改成下面的正则表达式,它只支持12个字符 Regex regex = new Regex(@"08[0-9][0-9][0-9][0-9][0-
Regex regex = new Regex(@"08[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]");
但是,如果我把它们改成下面的正则表达式,它只支持12个字符
Regex regex = new Regex(@"08[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]");
它只支持11个字符,如何使用于验证的正则表达式以08
开头,最小长度为11
08\d{9,10}
翻译成“从08开始”;最小11位,最大12位
编辑:计数。这个图案怎么样
^08\d{9,10}$
这将检查11到12个字符,包括08
^08[0-9]{9,}$
{9,}
表示“至少9”,但可能更多
我将其更改为9,以说明两个前导数字(总计11)。我将添加更完整的版本,它们在这里(带数字分组) 它将接受这种格式
(0811)123 123
[62]8121234567
0812345 6789
+62856123456789
0878-123-123-123
[+62823]1234-56789
-->我相信这是写作时最长的电话号码
((\+62 8\d{2}([ -])|08\d{2}([ -]?)|\+628\d{2})\d{4}(\3\4)\d{2,5})
这将接受最常用的样式,如08xx xxxx xxxx
08xxxxxxxxxx
08xx xxxx xxxx
+628xxxxxxxxx
+62 8xx xxxx xxxx
+62 8xx xxxx xxxx
此外,这将检查11-13个长数字
抱歉语法错误,不过将来regexpal.com会很有用。让您测试正则表达式,并提供快速参考指南。对不起,我以前从未听过regexpal.com:(谢谢!:)@Cignitor您是指11-12个numers,或者至少11个或更多?@coderofhoron至少包含11个字符,也就是说,may包含20个或更多字符:)哇!为什么会有这么多选票?这转换为包含一个以08开头的字符串。另外,如果
^
在开头,最小长度应该是13。在附加注释中,它可能应该是:08\d{9,10}或08\d{9,}作者不清楚是否需要最大12,而且,作者没有说明这是在一行的开头,所以没有^或者如果它是行的结尾,所以没有$。开头不应该有一个^
,结尾不应该有一个$
。但是,正在工作的不包含begin/end,因此添加^and/or$将是一个不同的检查,与给出的工作示例不同。因此,如果当前的数字嵌入到一句话“Frank的数字是08123456789”,那么另一个“^”不会找到它,但作者的例子会找到它。@JohnS。那么,它至少应该从11改为9吗?请记住,08
的前缀是总数的一部分。这不是op想要的。应该是{9,}
@Some1.Kill.the.DJ,这样就允许使用此模式了<代码>081234567891234125?@JW。他从来没有说过max limitTrue,有人应该问他是什么意思。正则表达式仍然接受值“08123ASD”。它假设只接受最少11个字符的数字,只需更改为^08[0-9]{9,}$
。C#可能也有一个“匹配整个表达式”方法(Java有),但我不确定好的,你能把正则表达式改成^08[0-9]{9,}$
吗?所以像我这样的印尼人很容易就能找到答案:)
((\+62 8\d{2}([ -])|08\d{2}([ -]?)|\+628\d{2})\d{4}(\3\4)\d{2,5})