C# 正则表达式匹配所有罗马尼亚电话号码
我搜索了整个谷歌,想找到一些方法来验证电话号码是否是罗马尼亚人,但没有找到任何对我有帮助的。。。 我需要以下数字格式的正则表达式验证程序:C# 正则表达式匹配所有罗马尼亚电话号码,c#,regex,C#,Regex,我搜索了整个谷歌,想找到一些方法来验证电话号码是否是罗马尼亚人,但没有找到任何对我有帮助的。。。 我需要以下数字格式的正则表达式验证程序: 074xxxxxxx 075xxxxxxx 076xxxxxxx 078xxxxxxx 072xxxxxxx 077xxxxxxx 0251xxxxxx 0351xxxxxx 这是我制作的正则表达式,但它不起作用: { "Romania", new Regex("(/^(?:(?:(?:00\\s?|\\+)40\\s?|0)(?:7\\d{2}\\s?\
074xxxxxxx
075xxxxxxx
076xxxxxxx
078xxxxxxx
072xxxxxxx
077xxxxxxx
0251xxxxxx
0351xxxxxx
这是我制作的正则表达式,但它不起作用:
{ "Romania", new Regex("(/^(?:(?:(?:00\\s?|\\+)40\\s?|0)(?:7\\d{2}\\s?\\d{3}\\s?\\d{3}|(21|31)\\d{1}\\s?\\d{3}\\s?\\d{3}|((2|3)[3-7]\\d{1})\\s?\\d$)")}
它无法验证正确的数字格式
更多详情:
- 如果数字不是以我添加的初始数字开头,那么该数字无效
- x应该包含任何数字,但不应该有相同的数字..如0000000 1111111等
- 它也可以具有以下格式(但不是强制性的):(072)xxxxxxx
static IDictionary countryRegex=new Dictionary()
{
{“USA”,新的正则表达式(“^[2-9]\\d{2}-\\d{3}-\\d{4}$”),
""英国",新的Regex("1300,1900,1902,6"("英国")("1300,1900,1902,6")("0,3,7,8)("8))("(13,(4"(,4"",34,
{“荷兰”,新的正则表达式(“(^\+[0-9]{2}\\\\\\\\\\\\+[0-9]{2}\\\\\\\\\(\\\+[0-9]{2}\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\[0-9]{2}\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\,
};
这与您的示例相符:
0(([7][456728])|([23]51)).*
试试这个:^(?=0[723][2-8]\d{7})(?!.*()\1{2})。{10}$
-负前瞻(?!…)
正在测试重复字符
我使用测试如果我正确理解规则,此模式应该可以工作:
^(?<paren>\()?0(?:(?:72|74|75|76|77|78)(?(paren)\))(?<first>\d)(?!\k<first>{6})\d{6}|(?:251|351)(?(paren)\))(?<first>\d)(?!\k<first>{5})\d{5})$
(?)$
因此,您可以将其添加到代码中,如下所示:
static IDictionary<string, Regex> countryRegex = new Dictionary<string, Regex>()
{
{ "USA", new Regex("^[2-9]\\d{2}-\\d{3}-\\d{4}$")},
{ "UK", new Regex("(^1300\\d{6}$)|(^1800|1900|1902\\d{6}$)|(^0[2|3|7|8]{1}[0-9]{8}$)|(^13\\d{4}$)|(^04\\d{2,3}\\d{6}$)")},
{ "Netherlands", new Regex("(^\\+[0-9]{2}|^\\+[0-9]{2}\\(0\\)|^\\(\\+[0-9]{2}\\)\\(0\\)|^00[0-9]{2}|^0)([0-9]{9}$|[0-9\\-\\s]{10}$)")},
{ "Romania", new RegEx(@"^(?<paren>\()?0(?:(?:72|74|75|76|77|78)(?(paren)\))(?<first>\d)(?!\k<first>{6})\d{6}|(?:251|351)(?(paren)\))(?<first>\d)(?!\k<first>{5})\d{5})$")}
};
static IDictionary countryRegex=new Dictionary()
{
{“USA”,新的正则表达式(“^[2-9]\\d{2}-\\d{3}-\\d{4}$”),
""英国",新的Regex("1300,1900,1902,6"("英国")("1300,1900,1902,6")("0,3,7,8)("8))("(13,(4"(,4"",34,
{“荷兰”,新的正则表达式(“(^\+[0-9]{2}\\\\\\\\\\\\+[0-9]{2}\\\\\\\\\(\\\+[0-9]{2}\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\[0-9]{2}\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\,
{“罗马尼亚”,新规则(“(?)()”0((?:72 | 74 | 75 | 76 | 77 | 78)(?(帕伦)\)(?\d)(?!\k{6})d{6}(?:251 | 351)(?(帕伦))(?\d)(?!\k{5})})
};
以下是模式的含义:
-匹配必须从输入字符串的开头开始^
)-可选地匹配(?\()?
字符。如果该字符存在,它将在名为(
的组中捕获该字符paren
-数字必须以单个0
0
-开始一个非捕获组,用于匹配两种不同格式中的一种(?:
-第一种格式(?:72 | 74 | 75 | 76 | 77 | 78)(?(paren)\)(?\d)(?!\k{6})\d{6}
-后两位数字必须是(?:72 | 74 | 75 | 76 | 77 | 78)
、72
、74
、75
、76
或77
78
-如果期初(?(paren)\)
)存在,则此处必须有一个结束(
)
-只匹配结尾七位数字中的第一位,并在名为(?\d)
first
-一种负向前瞻,确保剩余的六位数字与第一位数字不同(?!\k{6})
-匹配剩余的六位数字\d{6}
-or运算符|
-第二种格式(?:251 | 351)(?(paren)\)(?\d)(?!\k{5})\d{5}
-接下来的三位数字必须是(?:251 | 351)
或251
351
-如果期初(?(paren)\)
)存在,则此处必须有一个结束(
)
-只匹配结尾六位数字中的第一位,并在名为(?\d)
first
-一种负向前瞻,确保剩余的五位数字与第一位数字不同(?!\k{5})
-匹配剩余的五位数字\d{5}
-结束指定两种可能格式的非捕获组)
-匹配必须一直到输入字符串的末尾$
static IDictionary<string, Regex> countryRegex = new Dictionary<string, Regex>()
{
{ "USA", new Regex("^[2-9]\\d{2}-\\d{3}-\\d{4}$")},
{ "UK", new Regex("(^1300\\d{6}$)|(^1800|1900|1902\\d{6}$)|(^0[2|3|7|8]{1}[0-9]{8}$)|(^13\\d{4}$)|(^04\\d{2,3}\\d{6}$)")},
{ "Netherlands", new Regex("(^\\+[0-9]{2}|^\\+[0-9]{2}\\(0\\)|^\\(\\+[0-9]{2}\\)\\(0\\)|^00[0-9]{2}|^0)([0-9]{9}$|[0-9\\-\\s]{10}$)")},
{ "Romania", new RegEx(@"^(?<paren>\()?0(?:(?:72|74|75|76|77|78)(?(paren)\))(?<first>\d)(?!\k<first>{6})\d{6}|(?:251|351)(?(paren)\))(?<first>\d)(?!\k<first>{5})\d{5})$")}
};