C# 如何使用Regex查找不同的电话数字模式

C# 如何使用Regex查找不同的电话数字模式,c#,regex,C#,Regex,我希望能够使用正则表达式确定电话号码中的模式。我需要找到如何检查字符串是否有一组相邻的相同数字 示例 如果有以下电话号码和3种模式 假设:x=1,y=2,z=3 电话=79444 模式一:79xxxxxxx 模式二:79XYYYYY 模式三:79xyyyxxx 如果数字与模式一匹配,则类别为白金 如果数字与模式二匹配,则类别为金色 如果数字与模式3匹配,则类别为Silver您要做的是创建一个表达式,在它们之间的or|语句中使用命名的捕获组,然后逐个检查是否成功 以下是白金、黄金和白银的示例(使

我希望能够使用正则表达式确定电话号码中的模式。我需要找到如何检查字符串是否有一组相邻的相同数字

示例 如果有以下电话号码和3种模式
假设:x=1,y=2,z=3

电话=79444
模式一:79xxxxxxx
模式二:79XYYYYY
模式三:79xyyyxxx

如果数字与模式一匹配,则类别为白金
如果数字与模式二匹配,则类别为金色

如果数字与模式3匹配,则类别为Silver

您要做的是创建一个表达式,在它们之间的or
|
语句中使用命名的捕获组,然后逐个检查是否成功

以下是白金、黄金和白银的示例(使用10位数字的美国电话号码)。我没有使用您的请求,因为您的文本不清楚Z的含义,
Z=3
*。即便如此,这也应该给你足够的时间来满足你的实际需求


美国电话示例 例如,白金是(区号)XXX-XXXX。黄金是(区号)XYY-YYYY。而银色是任何电话号码的默认值,只要是10位数

var pattern = 
@"(?<Platinum>\d\d\d(\d)\1{6,6})|(?<Gold>\d\d\d\d(\d)\2{5,5})|(?<Silver>\d{10,10})";

var mt = Regex.Match("3035444444", pattern);

mt.Groups["Platinum"].Success; // false
mt.Groups["Gold"].Success;     // true
mt.Groups["Silver"].Success;   // false
var模式=
@“(?\d\d\d(\d)\1{6,6})|(?\d\d\d(\d)\2{5,5})|(?\d{10,10})”;
var mt=Regex.Match(“3035444444”,模式);
mt.Groups[“白金”]。成功;//假的
mt.Groups[“黄金”]。成功;//真的
mt.Groups[“银”]。成功;//假的

您是在寻找有关正则表达式的帮助,还是在寻找如何检查现有正则表达式是否匹配的帮助?(用于后一种用途)。我只是想知道如何编写它的表达式,或者如果有其他方法,那么x、y、z都是常量?不,它们不是常量,它们只是针对每个msisdn类变量进行更改。在我的示例中,电话号码是7944444,与模式1匹配,号码可能是795666555,与模式3匹配。我只是想知道如何找到与电话号码匹配的模式,或者反之亦然