2016-07-11 35 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})$

相關問題