Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在C中使用正则表达式匹配规则#_C#_Regex - Fatal编程技术网

C# 如何在C中使用正则表达式匹配规则#

C# 如何在C中使用正则表达式匹配规则#,c#,regex,C#,Regex,我不熟悉C#中的正则表达式。我不知道如何使用正则表达式来验证客户端参考号。此客户端参考号有3种不同类型:id、手机号和序列号 C#: 我不知道如何使用正则表达式计算不同类型的数字。像Regex(“{![\d..}”)。我不确定是否理解您的问题。但是如果您想从字符串中获取数字字符数,可以使用以下代码: Regex regex = new Regex(@"^[0-9]+$"); string ValidateString = regex.Replace(ValidateString, ""); if

我不熟悉C#中的正则表达式。我不知道如何使用正则表达式来验证客户端参考号。此客户端参考号有3种不同类型:id、手机号和序列号

C#:


我不知道如何使用正则表达式计算不同类型的数字。像Regex(“{![\d..}”)。

我不确定是否理解您的问题。但是如果您想从字符串中获取数字字符数,可以使用以下代码:

Regex regex = new Regex(@"^[0-9]+$");
string ValidateString = regex.Replace(ValidateString, "");
if(ValidateString.Length > 4 && ValidateString.Length < 10)
    //this is a customer id
....
Regex Regex=newregex(@“^[0-9]+$”;
字符串ValidateString=regex.Replace(ValidateString,“”);
如果(ValidateString.Length>4&&ValidateString.Length<10)
//这是一个客户id
....

我不确定是否理解了您的问题。但是如果您想从字符串中获取数字字符的数量,可以使用以下代码:

Regex regex = new Regex(@"^[0-9]+$");
string ValidateString = regex.Replace(ValidateString, "");
if(ValidateString.Length > 4 && ValidateString.Length < 10)
    //this is a customer id
....
Regex Regex=newregex(@“^[0-9]+$”;
字符串ValidateString=regex.Replace(ValidateString,“”);
如果(ValidateString.Length>4&&ValidateString.Length<10)
//这是一个客户id
....

我不明白你为什么要在这里使用正则表达式。简单的一行就可以了,例如,即使是这样的扩展方法:

static int NumbersCount(this string str)
{
    return str.ToCharArray().Where(c => Char.IsNumber(c)).Count();
}
在我看来,它更清晰,更易于维护

你也许可以尝试一下团队匹配,或者类似于

"(?<client>[0-9]{5,9}?)|(?<serial>[0-9]{10}?)|(?<mobile>[0-9]{13,}?)"

它更详细吗?是的,但是人们仍然会更喜欢你,而不是每次验证规则发生变化时让他们摆弄正则表达式,或者需要一些调试:)这包括你未来的自我。

我不明白你为什么要在这里使用正则表达式。简单的一行就可以了,例如即使这种扩展方法:

static int NumbersCount(this string str)
{
    return str.ToCharArray().Where(c => Char.IsNumber(c)).Count();
}
在我看来,它更清晰,更易于维护

你也许可以尝试一下团队匹配,或者类似于

"(?<client>[0-9]{5,9}?)|(?<serial>[0-9]{10}?)|(?<mobile>[0-9]{13,}?)"


它更详细吗?是的,但是人们仍然会更喜欢你,而不是每次验证规则发生变化时让他们摆弄正则表达式,或者需要一些调试:)这包括你未来的自我。

你在正则表达式c#中搜索过数字计数吗?同样,如果你只有这3种类型,只需计算c的数量字符串中的字符->
yourMagicString.Length
和check Number必须匹配数字,然后由
值决定。Length
?@Prix取决于长度。如果客户端no Length是13,则转到mobile。可以识别不同的数字。这确实是一些基本的量词知识。我们不会使用
\\d
,因为它可能匹配其他digits(在其他语言中)。因此,
[0-9]
将匹配一个数字。
[0-9]{5,9}
将匹配5到9个数字,
[0-9]{10}
将匹配10个数字,现在猜测手机号码的正则表达式。从现在开始,只需使用if/else语句。您可以在表达式中添加^$来定义行的开始/结束(字符串?).你为什么坚持使用(单独使用)正则表达式?它看起来不适合这里的工作。你在正则表达式c#中搜索过数字计数吗?另外,如果你只有这3种类型,只需计算字符串中的字符数->
你的magicstring.Length
并检查数字是否与数字匹配,然后根据
值决定。Length
?@Prix取决于长度。如果客户端没有长度为13,转到手机。可以识别不同的数字。这确实是一些基本的量词知识。我们不会使用
\\d
,因为它可能匹配其他数字(在其他语言中)。因此
[0-9]
将匹配一个数字。
[0-9]{5,9}
将匹配5到9个数字,
[0-9]{10}
将匹配10位数字,现在猜测手机号码的正则表达式。从现在起,只需使用if/else语句即可。您可以在表达式中添加^$来定义行的开始/结束(字符串?)。为什么坚持使用(单独使用)正则表达式?它看起来不适合这里的工作,谢谢,这几乎就是我要找的,但我希望正则表达式计算数字以返回值…如果验证字符串为“a1b2c3d4e5f6g7h8”,这不会导致问题吗因为它会去掉所有的非数字,然后将其标识为customerid,这可能是不正确的…是的,对,@Chris,我已经对此进行了验证。它会先验证字符串,然后再计算数字,以识别一种类型的客户端。我不知道如何使用正则表达式计算不同类型的客户端的数字types@user1358072当前位置有一根绳子系在我身上为了给你一个长度,如果你的验证已经完成了,为什么你需要正则表达式呢?谢谢,这几乎就是我要找的,但是我希望正则表达式计算数字以返回值…如果你的验证字符串是“a1b2c3d4e5f6g7h8”,这不会导致问题吗因为它会去掉所有的非数字,然后将其标识为customerid,这可能是不正确的…是的,对,@Chris,我已经对此进行了验证。它会先验证字符串,然后再计算数字,以识别一种类型的客户端。我不知道如何使用正则表达式计算不同类型的客户端的数字types@user1358072当前位置有一根绳子系在我身上为了给你一个长度,如果你的验证已经完成了,为什么你需要正则表达式呢?如果你事先过滤掉像
“a1b2c3d4e5f6g7h8”
,是的,这看起来更干净。如果你事先过滤掉像
“a1b2c3d4e5f6g7h8”
,是的,这看起来更干净。