Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 设置特殊正则表达式的长度_Java_Regex - Fatal编程技术网

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

Java 设置特殊正则表达式的长度,java,regex,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]+)

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

^[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.or u]旁边的重复,允许它们位于字符串的边缘


致以最诚挚的问候。

您可以使用前瞻功能:

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

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

为什么不简单地测试
input.size()
?我知道,但我正在努力掌握正则表达式!