2013-07-03 136 views
-2

我在尋找一個驗證以下字符串的正則表達式c3a0acfb-cdce-4a5c-a089-43c09578fc0f,它總是會有小寫字母,數字和-,我知道[0-9a-z]驗證了字母和數字,但是我需要說caracter -可以出現在任何地方。使用正則表達式驗證字符串

任何人都可以幫助我嗎?

謝謝。

+4

你嘗試過什麼嗎? – JREN

+0

'^ [0-9a-z] {8} - ([0-9a-z] {4} - ){3} [0-9a-z] {12} $' – Ilya

+0

如果能夠輕鬆檢查正則表達式if ind這個地方很有幫助http://www.regexplanet.com/advanced/java/index.html – vcetinick

回答

3

正則表達式:

([a-z0-9\-]+) 

以上將允許字母數字和連字符。

+0

你不需要逃避'-':http://stackoverflow.com/questions/7604879/java-regex-illegal-escape-character-in-character-class – ejk314

+0

澄清(以便它不依賴於鏈接):如果它是字符集*中列出的第一個或最後一個字符,則不需要轉義'-' *。 – ajp15243

2

假設這是一個GUID,使用此:

"{0,1}([0-9a-fA-F]){8}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){12}" 
+0

我想我寫的內容不太清楚,對不起。我想說我的字符串可以有小寫字母,數字和'-',這些順序不是必須的,不是我寫在我的問題中的數量,你知道嗎? –

+0

我確實想過,你真正想要的是一個全球唯一標識符的reg-ex。 – Bathsheba

+0

你的答案也能幫助我,因爲我看到我可以檢查連字符之間的字符串長度。謝謝。 –

0

嘗試[0-9a-z\\-]。 (注意:這不驗證字符串的長度)。

1
([0-9a-z]*)\-([0-9a-z]*)\-([0-9a-z]*) 

這個規則表達式應該這樣做,在Java中,你可能需要先-

多加一個反斜槓假設它是有一定的的-

數日後,你可以嘗試在:http://gskinner.com/RegExr/

0

這很簡單!你真的嘗試過什麼嗎?如果你想匹配包含小寫字母,數字和連字符的字符串,你可以使用:

[a-z0-9-] 

如果嚴格想匹配上面的圖案,則:

(([a-z0-9]+)(-)?)+ 

應該工作。這意味着任何由一個或零連字符組成的字母數字組合。

我不確定連字符是否需要直接使用/ - 而不是 - 直接:D。所以至少自己做這件事,讓我也知道:D。

[A-Z0-9 - ] +也會爲你工作,但它也將接受類型的字符串:

adcacf--sadcac-das----- 

即使這樣也是可以接受的:

------------- (strings of hyphen) 

所以,如果你知道你不會得到這種類型的字符串,那麼你可以按照PVR的說法使用[a-z0-9 - ] +。

相關問題