正则表达式条件匹配

时间:2014-10-10 08:41:15

标签: regex pattern-matching

• ~!@ to act as a placeholder in positions 1-3
•   Asterisks are permitted in positions 2-5.
•   Position One should be alphabetic (except for the ~!@)
•   No characters should accept numbers.
•   Other than the exceptions mentioned above, no special characters are allowed

意味着如果我的第一个单词ia字母然后2-5可以是Alpha或*(2-5不是强制性的,但如果我们输入那么它应该是alpha或*)

但如果我们使用〜那么2-3位应该是!@。

现在我正在使用

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

3 个答案:

答案 0 :(得分:2)

由于原始正则表达式适用于字符串以字母开头的情况,请保留它并为以~!@开头的字符串添加替换:

^(?i)(?:[a-z][a-z*]{0,4}[a-z]*|~!@[a-z*]{0,2}[a-z]*)$

答案 1 :(得分:1)

符合要求(case_insensitive):

^(?:~!@|[a-z][a-z*]{0,2})[a-z*]{0,2}[a-z]*$

答案 2 :(得分:0)

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

你可以试试这个。这应该符合你的所有条件。它使用|运算符来匹配从~开始的字符串和其他情况。