簡體   English   中英

在正則表達式中排除匹配項

[英]Exclude match in Regular Expression

是否可以忽略正則表達式中的特定匹配項?

例如:

我有以下正則表達式:

^[0-9]{2}$

但是我不想匹配特定的字符串,比如說“ 12”。

我想我正在尋找類似於and運算符的正則表達式,但是還沒有在.NET / C#中找到類似的東西。

我希望在正則表達式本身中執行此操作。 有什么建議或建議嗎?

^[0-9]{2}(?<!12)$

或相反:

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

請注意,在這種特定情況下,否定1個特定匹配很容易。 有時不是,有時(幾乎)不可能,取決於正則表達式。

您最好執行以下操作:

if (Regex.IsMatch(MyString, @"^[0-9]{2}$") && MyString != "12")
{
    // Do something
}

正則表達式非常強大,但重要的是要知道何時不使用它們:)

您可以使用以下難看的regexp:

^([02-9][0-9] | [1][013-9])$

翻譯成普通英語,它的意​​思是“不以1開頭的兩位字符串,或以1開頭但第二位不帶有2的兩位字符串”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM