【问题标题】:java regular expression digits, letters, uppercase, lowercasejava正则表达式数字、字母、大写、小写
【发布时间】:2014-05-05 13:56:23
【问题描述】:

我需要一个具有以下要求的 Java 正则表达式:

  • 只能包含字母和数字
  • 必须至少包含一位数字
  • 必须至少包含一个大写字母和一个小写字母

我尝试了几个不起作用的表达式 - 这是迄今为止最好的:

(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).*

【问题讨论】:

  • 您的问题是什么?你的正则表达式很好
  • 问题在于这个要求:只能包含字母和数字。当前的正则表达式接受其他字符 - 并且不能

标签: java regex


【解决方案1】:

锚定你的正则表达式,不要使用允许任何东西的.

^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])[a-zA-Z0-9]*$

^$ 匹配字符串的开头和结尾,[a-zA-Z0-9]* 确保字符仅是字符类中的字符。

【讨论】:

    最近更新 更多