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()
?我知道,但我正在努力掌握正则表达式!