2015-08-24 55 views
0

我正在嘗試爲3個字母不是空的字母字符串編寫正則表達式。我曾嘗試以下正則表達式爲非空字符串和3個字母按字母順序排列

(?=(^$)|(\s+$))(?=[A-Z]{3}) 

我知道?=作爲和運營商的行爲,(^$)|(\s+$)檢查非空與白的空間,但下面的正則表達式是行不通的。無法找出這是什麼錯誤。任何幫助,將不勝感激。

我正則表達式應該首先檢查字符串是否爲空,如果該字符串不是空的,那麼它應該檢查是否是按字母順序和長度是3舉例如下

1「」 - 應該失敗

2. 「LGW」 - 應該通過

3. 「LGWE」 - 應該失敗

4. 「LG @!」 - 應該失敗

五 「12L」 -sho uld失敗

+1

你可以更新一個例子嗎? – Siddharth

+0

更新了示例 –

+1

爲什麼你需要檢查它是否爲空?有3個字母字符的字符串當然不是空的 –

回答

7

在你的情況下,然後^[A-Z]{3}$應該做你以後的事情。

它將確保整個字符串由3個大寫字母組成。如果你想匹配小寫字母,只需使用這個:^[A-Za-z]{3}$

該表達式的一個例子是here

編輯:根據你的評論,如果你想接受空字符串,那麼你將需要改變^[a-z]{3}$^([a-z]{3})?$這似乎去一個測試用例在你的問題。這意味着這3個字母是可選的。

+0

我應該在這個正則表達式中更改以滿足以下要求。它可以是空的,如果它不是空的,那麼它應該只包含長度爲3的字母。嘗試過但沒有運氣(^ [\ s] * $)|([a-z] {3})。我知道這是一個新問題。如果針對此問題提出的解決方案也是非常有幫助的。 –

+0

@phanisekhar:如果它是空的,那麼你應該使用字符串上的'.length'屬性作爲輸入,不需要正則表達式。 – npinti

+0

@phanisekhar在你說的一個例子中應該失敗。那是錯的嗎?字符串可以是空的? – Siddharth