2013-10-06 56 views
1

我有一些正则表达式的长度问题集长度的协议是,这个正则表达式:一个特殊的正则表达式

^[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

为什么不简单测试'input.size()'? –

+0

我知道,但我正在努力掌握正则表达式! –

回答

2

您可以使用一个超前的这个:

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

确保今后的比赛是长6到12个字符之间。

+0

感谢哥们完美无缺! –