正则表达式语法(一个特定的字符串+正则表达式)

时间:2012-09-21 14:44:46

标签: regex

我有一个正则表达式,如下所示:

[RegularExpression(@"\d{2}[-zZ][a-zA-Z0-9]{6,7}[-a-zA-Z0-9]{2,3}[a-zA-Z0-9]?[a-zA-Z0-9]?", ErrorMessage = "Please enter a valid part number.")]

允许使用零件编号,如07-287370-002或11-16D897-007。

我还希望正则表达式接受这个特定的值:      ## - ###### - ###

我不确定语法,非常感谢任何帮助。

3 个答案:

答案 0 :(得分:2)

表示(A|B)的正则表达式表示“接受字符串匹配表达式A或表达式B”。因此,你会这样做:

[RegularExpression(@"(##-######-###|\d{2}[-zZ][a-zA-Z0-9]{6,7}[-a-zA-Z0-9]{2,3}[a-zA-Z0-9]?[a-zA-Z0-9]?)", ErrorMessage = "Please enter a valid part number.")]

答案 1 :(得分:0)

试试这个:

[RegularExpression(@"\d{2}[-zZ][a-zA-Z0-9]{6,7}[-a-zA-Z0-9]{2,3}[a-zA-Z0-9]?[a-zA-Z0-9]|##-######-###?", ErrorMessage = "Please enter a valid part number.")]

答案 2 :(得分:0)

我会说试试这个:

Pattern pattern = Pattern.compile("\d{2}[-zZ][a-zA-Z0-9]{6,7}[-a-zA-Z0-9]{2,3}[a-zA-Z0-9]?[a-zA-Z0-9]?;
String PI = "Enter sample part number here to check"
    Matcher matcher = pattern.matcher(PI);
    String partNumTemp = "";
    if(matcher.find()){
        partNumTemp = matcher.group();
        System.out.println(partNumTemp);

    }else{
        System.out.println("Did not work sorry");
    }