我是新的正则表达式,我想验证至少有6个字符和最多30个单词,并且应该只以字母开头,但它可以包含从第二个位置开始的数字和下划线。我使用这种模式,但它失败了在测试中。正则表达式的模式
String pattern = "^[A-Za-z][A-Za-z0-9_]*{6,30}$";
我是新的正则表达式,我想验证至少有6个字符和最多30个单词,并且应该只以字母开头,但它可以包含从第二个位置开始的数字和下划线。我使用这种模式,但它失败了在测试中。正则表达式的模式
String pattern = "^[A-Za-z][A-Za-z0-9_]*{6,30}$";
你可以使用这个表达式:
String pattern = "^[A-Za-z][A-Za-z0-9_]{5,29}$";
{5,29}
之前,您不能使用*
。{5,29}
,因为1个字符已经在开始。您还可以使用缩短的正则表达式:
String pattern = "^[A-Za-z]\\w{5,29}$";
由于\w
(字字符),相当于[A-Za-z0-9_]
。
我没有想过,谢谢 –
另外,如果使用'matches()',锚''''和'$'是多余/不必要的。 – Andreas
尝试在你的第二个字符类后去掉'*'。你有两个量词,它不是一个有效的正则表达式。 –