Java正则表达式完全指南
需积分: 9 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程序员必备的技能之一。
2018-06-12 上传
2019-08-03 上传
2021-08-21 上传
2023-05-17 上传
2023-11-19 上传
2024-04-08 上传
2023-05-14 上传
2023-06-08 上传
2023-07-28 上传
varyall
- 粉丝: 1160
- 资源: 260
最新资源
- 高清艺术文字图标资源,PNG和ICO格式免费下载
- mui框架HTML5应用界面组件使用示例教程
- Vue.js开发利器:chrome-vue-devtools插件解析
- 掌握ElectronBrowserJS:打造跨平台电子应用
- 前端导师教程:构建与部署社交证明页面
- Java多线程与线程安全在断点续传中的实现
- 免Root一键卸载安卓预装应用教程
- 易语言实现高级表格滚动条完美控制技巧
- 超声波测距尺的源码实现
- 数据可视化与交互:构建易用的数据界面
- 实现Discourse外聘回复自动标记的简易插件
- 链表的头插法与尾插法实现及长度计算
- Playwright与Typescript及Mocha集成:自动化UI测试实践指南
- 128x128像素线性工具图标下载集合
- 易语言安装包程序增强版:智能导入与重复库过滤
- 利用AJAX与Spotify API在Google地图中探索世界音乐排行榜