我想验证特定的字符串是否正确。正确的字符串如下所示:
ab1-peter-application
字符串的规则为<1-4 alphanumeric characters>-<1-30 alphanumeric characters>-<1-30 alphanumeric characters>
我只是按照以下方式构建正则表达式,所以我认为它可以工作:
[a-zA-Z0-9]{1,4}[-]{1}[a-zA-Z0-9]{1,30}[-]{1}[a-zA-Z0-9]{1,30}
由于每个段似乎都是相同的,并且字母数字字符的出现也有所不同,我觉得可以缩短它。有没有机会缩短/简化此正则表达式?
答案 0 :(得分:2)
您可以结合最后两个部分:
-<1-30 alphanumeric characters>-<1-30 alphanumeric characters>
分组,重复两次。此外,字符集中的单个字符是多余的-在这种情况下,可以完全删除字符集,以使正则表达式更加简洁。 {1}
(无意义的量词)也是如此:
[a-zA-Z0-9]{1,4}(?:-[a-zA-Z0-9]{1,30}){2}
此外,如果环境允许,请使用不区分大小写的标志(这样就不必重复a-zA-Z
),还可以使用\d
来代表数字而不是0-9
:
[a-z\d]{1,4}(?:-[a-z\d]{1,30}){2}
答案 1 :(得分:-1)
[a-zA-Z0-9] {4}(-[a-zA-Z0-9] {30}){2} $-简单的正则表达式以匹配 exact 长度要求的字符串
^ [a-zA-Z0-9] {1,4}(-[a-zA-Z0-9] {1,30}){2} $-简单的正则表达式以匹配变量所需长度
希望这会有所帮助