[英]Regex for Numbers, some special characters and NULL
我想創建一個正則表達式,將允許
0-9
.
>
<
%
,
-
NULL
所以我寫了一個正則表達式,例如^[0-9.><%,-NULL]*$
這匹配NULL,但當用戶僅輸入N
時不匹配。 所以我做了^[0-9.><%,-(NULL)]*$
但我確實
string pattern = "^[0-9.><%,-(NULL)]*$";
Regex.Match("N", pattern).Success;
這會引發參數異常並說
`parsing "^[0-9.><%,-(NULL)]*$" - [x-y] range in reverse order.
那么正確的正則表達式應該是什么?
我認為您需要的表達式與此類似:
"^([-0-9.><%,]|NULL)*$"
這將匹配字符集中出現的零個或多個字符(在方括號內)和NULL
實例。
將NULL
設置為字符集的一部分還將分別匹配N
, U
和L
字符。 嘗試使用(NULL)
進行分組不會達到預期的效果,但是會使字符集也與左括號和右括號匹配。
您提到的錯誤( [xy] range in reverse order
)是由於表達式中
"^[0-9.><%,-(NULL)]*$"
連字符被認為表示此字符范圍: ,-(
。因為括號在逗號之前,所以字符范圍被認為是相反的順序。
要在字符集中表示連字符( -
),需要避免將其解釋為表示字符范圍。 通過將破折號放在字符集的開頭或結尾,可以很容易地實現這一點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.