我正在尝试将字符串输入与以下条件匹配:
- 第一个字符是唯一的小写英文字母
- 接下来的字符是表示从 1500 到 2020 的当前年份
- 下一个字符只能是 10 或 100 或 1000
- 最后一个字符将是数字 0 到 9
我创建的我认为大部分正确的正则表达式字符串是有解释的:
String validRegex =
"^"+ # start of string
(?=.*[a-z].*[a-z].*[a-z])"+ # Ensure string has only 3 consecutive lowercase English letters
"(?=.*[0-9].*[0-9].*[0-9].*[0-9])"+ # Ensure string has only 4 digits representing year i.e. 2020
"(?=.*([0-9].*[0-9]) | ([0-9].*[0-9].*[0-9]) | ([0-9].*[0-9].*[0-9].*[0-9]))"+ # Ensure 10, 100, or 100 digits
"(?=.*[0-9])"+ # Ensure last character is a digit 0-9
"(?=\\S+$)"+ # Ensure string has no whitespace
".{10,12}"+ # Entire string length must be from 10 through 12 characters
"$"; # end of string
有没有一种简单的方法来更新我的正则表达式,以便我只能检测到唯一的连续字符?