Java正则表达式实战:匹配、不区分大小写、提取路径和分割字符串
需积分: 15 5 浏览量
更新于2024-11-14
收藏 2KB TXT 举报
"JAVA 正则表达式4种常用的功能"
正则表达式在Java编程中扮演着重要的角色,主要用于字符串的匹配、查找、替换和分割等操作。以下是Java中正则表达式的四种常见功能:
1. **字符串匹配与查找**:
在示例代码中,`m.find()` 方法用于在字符串 `str` 中查找符合正则表达式 `regEx` 的部分。例如,`regEx="a|f"` 表示查找 'a' 或 'f'。如果找到匹配项,`find()` 方法返回 `true`,否则返回 `false`。通过设置 `CASE_INSENSITIVE` 标志,可以实现不区分大小写的匹配。
2. **获取匹配分组**:
使用 `Matcher` 类的 `group()` 方法可以获取匹配到的子字符串。例如,`regEx=".+\(.+)$"` 可以匹配路径中的文件名,如 "c:\dir1\dir2\name.txt"。`find()` 找到匹配后,`group(i)` 返回第 `i` 个分组(从1开始),`groupCount()` 返回分组总数。所以,`m.group(1)` 将输出 "name.txt"。
3. **字符串分割**:
`split()` 方法根据正则表达式将字符串分割成多个子字符串。例如,`regEx="::"` 可以将字符串 "xd::abc::cde" 按照 "::" 分割成数组 `{"xd", "abc", "cde"}`。不使用正则表达式时,可以直接调用 `str.split("::")` 达到相同效果。
4. **字符串替换**:
`replaceAll()` 方法使用正则表达式替换匹配到的部分。如 `regEx="a+"` 表示一个或多个连续的 'a' 字符。在字符串 "aaabbcedaccdeaa" 中,`replaceAll("A", "A")` 会将所有连续的 'a' 替换为 'A',结果为 "AbbcedAccdeA"。若想完全移除匹配项,可将替换字符串设为空,如 `replaceAll("", "")`,这将删除所有 'a',得到 "bbcedccde"。
正则表达式的一些特殊字符:
- `\D`:匹配任何非数字字符,相当于 `[^0-9]`
- `\s`:匹配任何空白字符,包括空格、制表符、换页符等,等同于 `[\t\n\x0B\f]`
- `\S`:匹配任何非空白字符,等同于 `[^\t\n\x0B\f]`
- `\w`:匹配字母、数字或下划线,等同于 `[a-zA-Z_0-9]`
- `\W`:匹配非字母、数字或下划线,等同于 `[^a-zA-Z_0-9]`
- `$`:表示字符串的结尾
在实际应用中,这些功能可以结合使用,以满足复杂的字符串处理需求。例如,正则表达式可用于验证用户输入、数据清洗、文本分析等多种场景。理解并熟练掌握正则表达式是提升Java编程能力的重要步骤。
2008-01-16 上传
2010-08-06 上传
2024-06-28 上传
2012-12-13 上传
2012-12-13 上传
2007-11-25 上传
2012-05-15 上传
2011-06-27 上传
2008-09-25 上传
myfamiliar
- 粉丝: 25
- 资源: 41
最新资源
- MATLAB实现小波阈值去噪:Visushrink硬软算法对比
- 易语言实现画板图像缩放功能教程
- 大模型推荐系统: 优化算法与模型压缩技术
- Stancy: 静态文件驱动的简单RESTful API与前端框架集成
- 掌握Java全文搜索:深入Apache Lucene开源系统
- 19计应19田超的Python7-1试题整理
- 易语言实现多线程网络时间同步源码解析
- 人工智能大模型学习与实践指南
- 掌握Markdown:从基础到高级技巧解析
- JS-PizzaStore: JS应用程序模拟披萨递送服务
- CAMV开源XML编辑器:编辑、验证、设计及架构工具集
- 医学免疫学情景化自动生成考题系统
- 易语言实现多语言界面编程教程
- MATLAB实现16种回归算法在数据挖掘中的应用
- ***内容构建指南:深入HTML与LaTeX
- Python实现维基百科“历史上的今天”数据抓取教程