2011-11-14 16 views
0

我需要檢查給定的文本是驗證爲wep密鑰。所以我需要檢查一個字段下面的所有正則表達式。有沒有辦法用regula來做到這一點?是否有可能使用regula創建多個正則表達式模式的驗證?

^(([0-9A-Fa-f]{10})|)$ 

^(([\\s\\S]{5})|)$ 

^(([0-9A-Fa-f]{26})|)$ 

^(([\\s\\S]{13})|)$ 

^(([0-9A-Za-z]{58})|)$ 

^(([0-9A-Fa-f]{24})|)$ 

[\\s\\S] 
+0

我很確定你不想檢查那些正則表達式。他們中的大多數沒有太大意義,或者它們重疊很多。無論如何,誰最近使用WEP? –

回答

0

如果你想檢查一個字符串是否是一個)組成的十六進制數字完全和b)恰好爲0,10,24,26或58個的長度字符(雖然我沒有得到你想要什麼24位),然後既可以使用

^[0-9a-fA-F]*$ 

和斷言匹配的長度正好是0,10,24,26或58或者,可以在一個單一的正則表達式做到這一點:

^(?:[0-9a-fA-F]{10}|[0-9a-fA-F]{24}|[0-9a-fA-F]{26}|[0-9a-fA-F]{58})?$ 
0

除了@蒂姆的回答:

^(([0-9A-Fa-f]{10})|)$ 

你意識到這個匹配也沒有對不對?你在每個正則表達式中都有這個嗎?爲什麼?

然後你有[\\s\\S]它匹配的一切。目前還不清楚你在這裏試圖達到什麼。請編輯你的問題。

+0

嗨,對不起,我正在使用正則表達式。你能解釋爲什麼'^(([0-9A-Fa-f] {10})|)$'什麼都不匹配? –

+0

因爲表達式'^(([0-9A-Fa-f] {10})|)$'在開頭匹配('^'),所以匹配_either_表達式'([0-9A-Fa -f] {10})** ** **「或」符號('|')和結尾括號(')')之間的表達式,它是一個零長度的字符串,然後最後匹配到最後('$')。它將匹配開始('^'),沒有結束('$')。 –