RegEx匹配多个组中的任何一个

时间:2016-01-07 23:24:40

标签: c# regex

我不确定这是否可行,但我想匹配多个正则表达式组

(^[0-9]) (^[$][0-9]) (^[$]{2}[0-9])

如果第一个字符是数字,或者如果第一个字符是$后跟一个数字,或者前两个字符是$后跟一个数字,它将匹配字符串。

匹配的示例字符串:

15271%
$3C001%
$$8244150928223C001%

这可以一次完成,还是我必须单独检查每场比赛?

感谢任何帮助。谢谢!

2 个答案:

答案 0 :(得分:1)

您可以使用:

^\d.*|^\$\d.*|^\$\$\d.*


try {
    if (Regex.IsMatch(subjectString, @"\A(?:^\d.*|^\$\d.*|^\$\$\d.*)\z", RegexOptions.Multiline)) {
        // Successful match
    } else {
        // Match attempt failed
    } 
} catch (ArgumentException ex) {
    // Syntax error in the regular expression
}

答案 1 :(得分:1)

您可以使用管道符号|实现这一目标。它基本上表现得像"或"你的正则表达式。

例如:

(banana|apple)

将匹配" banana"和" apple"。

在您的情况下,您也可以使用这样的模式

(\${0,2}\d.+)

匹配所有选项:没有$,一个$和两个$。