设置特殊正则表达式的长度

时间:2013-10-06 12:09:56

标签: java regex

我有一些正则表达式长度的问题,这个正则表达式是这个正则表达式:

^[A-Za-z][A-Za-z0-9]*(?:[_ .][A-Za-z0-9]+)*$

只应接受以下字符串:

[str][White space or . or _][str][White space or . or _][str]...[str]

[白色空间或。或_]:不应以相同的顺序重复。

我的问题是如何将完整字符串的长度限制在{6,12} 之间,我试过:

^[[A-Za-z][A-Za-z0-9]*(?:[_ .][A-Za-z0-9]+)*]{6,12}$

但它不能很好地导致重复[白色空间或。或者_]旁边允许它们位于字符串的边缘。

最好的问候。

1 个答案:

答案 0 :(得分:2)

您可以使用前瞻:

^(?=.{6,12}$)[A-Za-z][A-Za-z0-9]*(?:[_ .][A-Za-z0-9]+)*$
 ^^^^^^^^^^^^

确保即将到来的匹配长度为6到12个字符。