我正在解决 Java 中的一个问题,需要制作一个正则表达式,它检查字符串中的下一个规则:
- 字符串必须只包含数字、大小写字母和下划线字符
"_"; - 字符串不能从数字开始;
- 如果字符串以下划线开头,则第二个字符不能是下划线,即必须是数字或字母;
- 字符串只能由一个字符组成,但该字符不能是下划线;
我不明白如何制作正则表达式的第一部分。我试着把它一部分一部分:
- 表达式
"_[a-zA-Z0-9]"满足条件“如果字符串从下划线字符开始,则第二个字符是字母或数字”。 - 表达式
"\\D"满足条件“字符串不能从数字开始”。 - 表达式
"[a-zA-Z]"满足条件“字符串以大写或小写字母开头”。
表达式的最后一部分很简单 - "w*"。
当我尝试将所有这些放在一起"(_[a-zA-Z0-9])*|(\\D)*|([a-zA-Z])*w*"时,获得的正则表达式无法正常工作。
以下字符串b33不_n1适合我的正则表达式,但字符串__适合它。
如何修复我的正则表达式?