2014-10-10 128 views
1
[email protected] to act as a placeholder in positions 1-3 
• Asterisks are permitted in positions 2-5. 
• Position One should be alphabetic (except for the [email protected]) 
• No characters should accept numbers. 
• Other than the exceptions mentioned above, no special characters are allowed 

意味着,如果我的第一個字拼音IA隨後2-5可以是字母或*(2-5不是強制性的,但如果我們再進入應該是α或*)正則表達式匹配條件

但如果我們使用〜那麼2-3位應該是!@。

現在我使用

^[a-zA-Z~][a-zA-Z*]{0,4}[a-zA-Z]*$", Pattern.CASE_INSENSITIVE) 
+1

你真的需要澄清你想要做什麼 – Vajura 2014-10-10 08:43:06

+2

請添加預期的結果(一個或兩個匹配的字符串,以及一個或兩個不應該匹配的) – Supamiu 2014-10-10 08:43:49

+0

字符串的最小長度是多少? – 2014-10-10 10:56:22

回答

0
^[a-zA-Z][a-zA-Z*]{0,4}[a-zA-Z]*$|^~[[email protected]]{2}[a-zA-Z*][a-zA-Z]*$ 

您可以嘗試this.This應該滿足您的conditions.It使用|運算符來匹配從~和其他情況下開始的字符串。

+0

爲什麼downvoted ???????????? //// – vks 2014-10-10 08:56:31

2

由於原來的正則表達式適用於字符串開始以字母的情況下,保持並添加交替進行,與[email protected]開頭的字符串:

^(?i)(?:[a-z][a-z*]{0,4}[a-z]*|[email protected][a-z*]{0,2}[a-z]*)$ 
+0

錯過:(?in(?[a-z ... – 2014-10-10 10:48:22

+0

@walidtoumi:良好的接收,謝謝。 – Toto 2014-10-10 11:02:29

1

這符合要求(CASE_INSENSITIVE):

^(?:[email protected]|[a-z][a-z*]{0,2})[a-z*]{0,2}[a-z]*$