2014-10-10 70 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]*$