我需要一个正则表达式让一个String匹配,如果它是空的或者长度在8,16之间
我试过这个" (.?|(\w){8,16})$ "
,但它不起作用。
谢谢
答案 0 :(得分:0)
好像你想要这样的东西,
^(?:.{8,16})?$
或
^(?:\w{8,16})?$
答案 1 :(得分:0)
这将完成工作:^(|.{8,16})$
答案 2 :(得分:0)
试试这个: ((){8,16})|({0}) 如果有帮助,请告诉我。
答案 3 :(得分:0)
你的正则表达式.ptag {
position: absolute;
top:0; /* set at top */
margin-left: -7%;
width: 7%;
border: 1px solid red;
height: 100%;
background: lightblue;
color: white;
text-align: center;
}
.circle{
width: 50px;
height: 50px;
float: right;
border-radius: 100%;
background: green;
margin-top: -7%;
color:black!important;
text-align: center;
line-height: 50px; /* same as height */
}
“不起作用”因为一般的正则表达式如何工作,存在多个缺陷。在交替之间,首先测试最左边的一个。 (.?|(\w){8,16})$
表示任何字符的0或1次(这也意味着长度为1的字符串也不正确匹配)。因此,由于.?
,8个字符的字符串将与其最后一个字符匹配,并且甚至不会检查您的第二个字符串。
另一件事是使用.?
而没有$
,这意味着您只需检查最后8-16个字符(如果有的话)。 ^
是字符串的开头,需要在这里使用(从头到尾检查整个字符串)。
^
应该工作并且意味着“空”(^(|\w{8,16})$
是一个空字符串,它的开头和结尾之间没有任何内容)或字符串开头和结尾之间的8-16个字符号。 / p>