Java正则表达式是编程中不可或缺的一部分,特别是在处理字符串时,它们提供了强大的模式匹配功能。以下是一些常用Java正则表达式及其应用场景的详细解释:
1. **数字验证**:
- 只能输入数字:"^[0-9]*$":表示任何数量的数字字符。
- 只能输入n位的数字:"^\d{n}$":限制输入的数字位数为n。
- 只能输入至少n位的数字:"^\d{n,}$":最少n位,可包含更多位数。
- 范围限制:"\d{m,n}",限制输入的数字在m到n位之间。
- 零和非零开头:"^(0|[1-9][0-9]*)$":允许以0或1-9开头的任意位数数字。
- 有两位小数的正实数:"^[0-9]+(.[0-9]{2})?$":最多两位小数,可选。
- 1-3位小数的正实数:"^[0-9]+(.[0-9]{1,3})?$":1到3位小数。
2. **字符类型验证**:
- 3位长度的字符:"^.{3}$":确保字符串长度为3。
- 英文字符:"^[A-Za-z]+$":仅包含大写或小写字母。
- 大写英文字符:"^[A-Z]+$":仅大写字母。
- 小写英文字符:"^[a-z]+$":仅小写字母。
- 数字与字母组合:"^[A-Za-z0-9]+$":包括数字和字母。
- 数字、字母和下划线:"^\w+$":特殊字符包括数字、字母和下划线。
3. **密码验证**:
- 用户密码:"^[a-zA-Z]\w{5,17}$":要求以字母开头,长度在6到18个字符之间,允许字母、数字和下划线。
4. **特殊字符检测**:
- 避免特定字符:"[^%&',;=?$\x22]+":排除百分号、等号、问号等字符。
5. **中文字符验证**:
- 只能输入汉字:"^[\u4e00-\u9fa5]{0,}$":仅包含汉字。
6. **电子邮件验证**:
- Email地址:"^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$":遵循标准格式。
7. **URL验证**:
- Internet URL:"^http://%28[/\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$":支持http或https协议及路径。
8. **电话号码验证**:
- 中国手机号码:"^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$":符合中国固定和移动电话号码格式。
9. **身份证号码验证**:
- 15位或18位数字:"^\d{15}|\d{18}$":验证中国身份证号码。
10. **日期和月份验证**:
- 一年中的12个月:"^(0?[1-9]|1[0-2])$":验证01至12月。
- 一个月的31天:"(空缺)":此处缺失具体表达式,可能需要一个类似"^(31)$"的正则来匹配31天的月份。
这些正则表达式在处理用户输入验证、数据清洗、格式检查等方面非常有用。记住,在实际应用中,根据需求调整和优化正则表达式以适应特定场景。