我是正则表达式的新手,我想验证至少包含 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_]
。
关于java - 正则表达式的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39603647/