2016-07-11 32 views
1

我想为严格字母数字的6位数字或6位数字的字母制作Java正则表达式。我想要这些在单一的正则表达式。
在堆栈溢出中,我找到了(?=.*[a-zA-Z])(?=.*[\\d]).*,但它不适用于六位数的情况。 我试图通过OR内正则表达式本身作为(?=.*[a-zA-Z])(?=.*[\\d]){6}.*|[A-Z]{6}但这也没有奏效。作为所有字母或长度为6的严格字母数字的Java单一正则表达式

请建议什么可能是这种正则表达式的更好的解决方案。

+0

也许,'^:| $'(\\ d {6} [A-ZA-Z] {6}?)?不确定6位*的字母数字*的含义。也许你需要'^(?:(?=(?:\\ D * \\ d){6})\\ w + | [a-zA-Z] {6})$'。请分享一些示例字符串。 –

+0

'^ [A-Za-z] {6} | [0-9] {6} $' – SMA

+0

'^ [\ w && [^ _]] {6} $' –

回答

2

所以你想允许长度为6的字母数字字符串,但不允许数字。

"^(?!\\d*$)[^\\W_]{6}$" 

See demo at regexplanet(单击Java)

+1

感谢bobble泡泡。 –

0

如果是6位数字或字母(混合)
^([A-ZA-Z0-9] {6})$

如果6位或6个字母(没有允许混合)
^([0-9] {6} | [a-zA-Z] {6})$

相关问题