我有以下Java正则表达式:
^[A-Z][A-Z0-9]*(?:_[A-Z0-9]+)*$
我想扩展上面的正则表达式,只匹配长度在1到32个字符之间的字符串。
我尝试使用群组和{n,m}
运算符,但这不起作用,因为我有*
运算符两次。我的感觉是,使用零宽度负向前瞻可能有一个解决方案吗?
答案 0 :(得分:2)
使用积极的前瞻:
^(?=.{1,32}$)[A-Z][A-Z0-9]*(?:_[A-Z0-9]+)*$
这与你的正则表达式相同,但确保整个字符串的长度在1到32个字符之间。