1

我对一些正则表达式的长度有疑问,交易是这个 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}$

但它效果不佳,导致 [White space or . 或 _] 在它旁边允许它们位于字符串的边缘。

此致。

4

1 回答 1

2

您可以为此使用前瞻:

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

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

于 2013-10-06T12:12:29.633 回答