c# 中的正则表达式,用于允许数字和字母

本文关键字:数字 许数字 正则表达式 用于 | 更新日期: 2023-09-27 18:35:11

我正在尝试编写一个允许不同输入集的正则表达式。

前 9 个字符应为数字 - 123456789

10 个字符是可选的,如果存在,应为 字母 - 123456789A

11 字符(如果预设应为 aplphanumeric - 123456789AA 或 123456789A1

)12 - 14 字符(如果预设应为数字) - 123456789AA123

或 123456789A1123

我试过这个,但它不起作用。.

 string sMatch = "^[0-9]{9}([a-zA-Z])'?{1}([0-9A-Za-z])'?{1}([0-9])?{1}([0-9])'?{1}$";
            System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex(sMatch);

c# 中的正则表达式,用于允许数字和字母

我不知道 C# 的正则表达式实现,但怎么样:

'd{9}[a-zA-Z]?[a-zA-Z0-9]?'d{0,3}

尝试以下操作

string sMatch = "^(?i)''b''d{9}[a-z]?[^'W_]?''d{0,3}''b$";

观看现场演示

A. 您需要在字符串中的第一个引号之前放置一个"@"字符,以将其标记为字符串文字,以便它处理''?适当地。

二. 我会把它分解成几个语句,即:

string preset1 = @"^[0-9]{9}", preset2 = @"[a-zA-Z]{1}", preset3 = @"[0-9A-Za-z]{1}", 
    preset4 = @"[0-9]{3}$";
if (Regex.IsMatch(input, preset1){
    //Do fits first preset
    if (Regex.IsMatch(input, preset1 + preset2){
        //Do fits second preset
        if (Regex.IsMatch(input, preset1 + preset2 + preset3)){
            //Do fits third preset
            if (Regex.IsMatch(input, preset1 + preset2 + preset 3 + preset4)){
                //Do fits fourth preset
            }
        }
    }
}