使用Regex.Match()的C#Regex验证规则

noc*_*ier 30 c# regex validation

我写了一个正则表达式,它应该使用以下规则验证字符串:

  1. 前四个字符必须是字母数字.
  2. 字母字符后跟6或7个数字值,总长度为10或11.

所以如果字符串有效,字符串应如下所示:

CCCCNNNNNN或CCCCNNNNNNN

C是任何字符,N是数字.

我的表达写道: @"^[0-9A-Za-z]{3}[0-9A-Za-z-]\d{0,21}$";

我的正则表达式匹配代码如下所示:

var cc1 = "FOOBAR"; // should fail.
var cc2 = "AAAA1111111111"; // should succeed

var regex = @"^[0-9A-Za-z]{3}[0-9A-Za-z-]\d{0,21}$";

Match match = Regex.Match( cc1, regex, RegexOptions.IgnoreCase );

if ( cc1 != string.Empty && match.Success )
{
     //"The Number must start with 4 letters and contain no numbers.",
     Error = SeverityType.Error
}
Run Code Online (Sandbox Code Playgroud)

我希望有人可以看看我的表达,并提供一些改进的反馈,以产生有效的匹配.

我也.Match()正确使用了吗?如果Match.Successtrue,那是否意味着字符串有效?

dtb*_*dtb 60

4个字母数字字符的正则表达式后跟6到7个十进制数字:

var regex = @"^\w{4}\d{6,7}$";
Run Code Online (Sandbox Code Playgroud)

请参阅:正则表达式语言 - 快速参考


Regex.Match方法返回一个匹配对象.在成功物业表示是否匹配成功与否.

var match = Regex.Match(input, regex, RegexOptions.IgnoreCase);

if (!match.Success)
{
    // does not match
}
Run Code Online (Sandbox Code Playgroud)


小智 6

以下代码使用正则表达式并检查 4 种不同的模式来测试它,请参阅下面的输出:

using System;
using System.Text.RegularExpressions;   
public class Program
{
    public static void Main()
    {
        var p1 = "aaaa999999"; 
        CheckMatch(p1);
        p1 = "aaaa9999999";
        CheckMatch(p1);
        p1 = "aaaa99999999";
        CheckMatch(p1);
        p1 = "aaa999999";
        CheckMatch(p1);
    }

    public static void CheckMatch(string p1)
    {
        var reg = new Regex(@"^\w{4}\d{6,7}$");
        if (!reg.IsMatch(p1))
        {
            Console.WriteLine($"{p1} doesn't match");
        }
        else
        {
            Console.WriteLine($"{p1} matches");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

输出:

aaaa999999 匹配
aaaa9999999 匹配
aaaa99999999 不匹配
aaa999999 不匹配

尝试使用DotNetFiddle


Smi*_*Smi 5

以下代码演示了正则表达式的用法:

        var cc1 = "FOOBAR"; // should fail.
        var cc2 = "AAAA1111111"; // should succeed
        var r = new Regex(@"^[0-9a-zA-Z]{4}\d{6,7}$");
        if (!r.IsMatch(cc2))
        {
            Console.WriteLine("cc2 doesn't match");
        }
        if (!r.IsMatch(cc1))
        {
            Console.WriteLine("cc1 doesn't match");
        }
Run Code Online (Sandbox Code Playgroud)

输出将是cc1 doesn't match.