Java正则表达式完全指南

需积分: 9 0 下载量 109 浏览量 更新于2024-09-16 收藏 59KB DOC 举报
【JAVA正则表达式语法】 正则表达式是Java编程中一种强大的文本处理工具,用于匹配、查找、替换等操作。在Java中,正则表达式通常与`java.util.regex`包中的类一起使用,如`Pattern`和`Matcher`。 1. **基本语法** - `^` 表示行的开始 - `$` 表示行的结束 - `\d` 代表数字,相当于 `[0-9]` - `\D` 代表非数字字符 - `\w` 代表单词字符(等同于[a-zA-Z0-9_]) - `\W` 代表非单词字符 - `\s` 代表空白字符 - `{n}` 重复n次 - `{n,}` 重复n次或更多次 - `{n,m}` 重复n到m次 2. **示例解析** - 整数或小数:`^[0-9]+\.{0,1}[0-9]{0,2}$`,匹配0-9之间的整数或最多保留两位小数的浮点数。 - 只能输入数字:`"^[0-9]*$"`,仅允许输入0-9的数字。 - n位数字:`"^\d{n}$"`,确保输入正好n位数字。 - 至少n位数字:`"^\d{n,}$"`,允许输入n位或更多的数字。 - m~n位数字:`"^\d{m,n}$"`,限制输入在m到n位之间的数字。 - 零或非零开头的数字:`"^(0|[1-9][0-9]*)$"`,允许输入0或非零开头的数字。 - 有两位小数的正实数:`"^[0-9]+(.[0-9]{2})?$"`,匹配至少一位整数部分,最多两位小数的正实数。 - 1~3位小数的正实数:`"^[0-9]+(.[0-9]{1,3})?$"`,匹配至少一位整数部分,小数部分1到3位的正实数。 - 非零的正整数:`"^\+?[1-9][0-9]*$"`,匹配非零的正整数。 - 非零的负整数:`"^\-[1-9][]0-9"*$`,匹配非零的负整数。 - 长度为3的字符:`"^.{3}$"`,确保输入长度为3的字符串。 - 26个英文字母组成的字符串:`"^[A-Za-z]+$"`,仅允许输入英文字母。 - 大写字母组成的字符串:`"^[A-Z]+$"`,仅允许输入大写字母。 - 小写字母组成的字符串:`"^[a-z]+$"`,仅允许输入小写字母。 - 数字和26个英文字母组成的字符串:`"^[A-Za-z0-9]+$"`。 - 数字、26个英文字母或下划线组成的字符串:`"^\w+$"`。 - 用户密码验证:`"^[a-zA-Z]\w{5,17}$"`,验证以字母开头,长度6-18,包含字母、数字和下划线的字符串。 - 特殊字符检查:`"[^%&',;=?$\x22]+"`,验证是否包含特定特殊字符。 - 汉字输入:`"^[\u4e00-\u9fa5]{0,}$"`,只允许输入汉字。 - 邮箱地址验证:`"^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$"`,匹配标准的邮箱地址格式。 - URL验证:`"^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$"`,验证互联网URL。 - 电话号码验证:`"^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$"`,匹配多种格式的电话号码。 - 身份证号验证:`"^\d{15}|\d{18}$"`,验证15位或18位的身份证号。 - 一年的12个月:`"^(0?[1-9]|1[0-2])"`,匹配1到12的月份。 3. **使用方法** - 创建模式:`Pattern pattern = Pattern.compile("正则表达式");` - 匹配字符串:`Matcher matcher = pattern.matcher("待匹配的字符串");` - 验证是否匹配:`boolean isMatch = matcher.matches();` - 获取匹配结果:`while (matcher.find()) { System.out.println(matcher.group()); }` 通过这些正则表达式,开发者可以有效地验证和处理各种输入数据,确保其符合预期的格式和规则。在实际开发中,正则表达式常用于表单验证、数据清洗、日志分析等多个场景。理解并熟练运用正则表达式是每个Java程序员必备的技能之一。