是否可以忽略正则表达式中的特定匹配?
例如:
我有以下正则表达式:
^[0-9]{2}$
但我不想匹配特定的字符串,让我们说“12”。
我认为我正在为正则表达式寻找类似和运算符的东西,但是在.NET / C#中找不到这样的东西。
我更喜欢在正则表达式中这样做。 有什么建议或建议吗?
答案 0 :(得分:4)
^[0-9]{2}(?<!12)$
反之亦然:
^(?!12)[0-9]{2}$
请注意,在此特定的情况下,否定1个特定匹配很容易。有时它不是,有时它(左)是不可能的,取决于正则表达式。
答案 1 :(得分:1)
你最好做一些事情:
if (Regex.IsMatch(MyString, @"^[0-9]{2}$") && MyString != "12")
{
// Do something
}
正则表达式非常强大,但知道何时不使用它们很重要:)
答案 2 :(得分:1)
你可以使用这个丑陋的正则表达式:
^([02-9][0-9] | [1][013-9])$
翻译为普通英语,表示“不是以1
开头的两位数字符串,或者是以1
开头但没有2
的两位数字符串作为第二个数字“。