正则表达式基础教程:匹配、查找与替换

需积分: 15 0 下载量 38 浏览量 更新于2024-09-05 1 收藏 131KB DOCX 举报
"正则表达式是用于处理字符串的强大工具,常用于字符串匹配、查找和替换。本文档是一份学习正则表达式的笔记,适用于初学者和复习者,文末包含常用正则表达式速查表。文档涉及了正则表达式的基本概念、语法、特殊字符、量词、字符边界、匹配模式以及选择符和分组等核心知识点。" 正则表达式是编程语言中用于模式匹配的重要工具,主要用于处理字符串,如验证输入格式、数据提取等。它们由特定的字符序列组成,可以匹配、查找或替换字符串中的模式。 1. **正则表达式简介** 正则表达式主要应用于字符串匹配,如验证IP地址、邮箱格式,或者从大量文本中提取特定信息,如email地址和链接。Java中处理正则表达式的类有`java.lang.String`、`java.util.regex.Pattern`和`java.util.regex.Matcher`。 2. **正则表达式语法** - **普通字符**:包括字母、数字、汉字、下划线和非特殊标点符号,它们匹配与自身相同的字符。 - **简单转义字符**:如`\t`表示制表符,`\n`表示换行符,这些字符在正则表达式中具有特殊含义。 - **标准字符集合**:如`\d`代表数字,`\w`代表字母、数字或下划线。 - **自定义字符集合**:使用`[]`定义一组字符,如`[\d.-+]`匹配数字、小数点、加号或减号。 3. **量词(Quantifier)** - **匹配次数**:如`*`表示零次或多次,`+`表示一次或多次,`?`表示零次或一次。 - **贪婪模式与非贪婪模式**:贪婪模式尽可能多地匹配,非贪婪模式则尽可能少地匹配,可通过`?`进行切换。 4. **字符边界** - **边界匹配**:`\b`匹配单词边界,确保前后字符不是单词字符。 5. **正则表达式匹配模式** - **IGNORECASE**:忽略大小写匹配。 - **SINGLELINE**:使`.`匹配包括换行符在内的任何字符,视为单行。 - **MULTILINE**:将每行视为独立字符串,允许在行首行尾使用`\A`和`\Z`匹配。 6. **选择符和分组** - **选择符**:如`|`表示或操作,匹配其左侧或右侧的表达式。 - **分组(Grouping)**:使用圆括号`( )`进行分组,可以进行子表达式的捕获和引用,编号从1开始。 - **反向引用**:`\n`引用第n个捕获组的内容。 - **预搜索(零宽断言)**:如`(?=...)`正向预搜索,`(?<!...)`负向预搜索,匹配满足条件但不包含该内容的位置。 这份学习笔记详尽地介绍了正则表达式的核心概念和使用技巧,对于理解和掌握正则表达式非常有帮助,特别是文末的常用正则表达式表,便于日常查询和参考。