正则表达式完全指南

需积分: 1 0 下载量 40 浏览量 更新于2024-09-12 收藏 10KB TXT 举报
"正则表达式是用于匹配字符串的强大工具,它通过定义一系列规则来查找、提取、替换或验证文本模式。在Java中,自JDK1.4开始引入了`java.util.regex`包,提供了对正则表达式的全面支持。正则表达式中的特殊字符和元字符扮演着关键角色,它们帮助我们构建复杂的匹配模式。 正则表达式的基本元素包括: 1. `\d`:代表任意数字,等同于 `[0-9]`。 2. `\D`:代表非数字字符,即 `[^0-9]`。 3. `\s`:代表空白字符,包括制表符(\t)、换行符(\n)、垂直制表符(\x0B)、换页符(\f)和回车符(\r)。 4. `\S`:代表非空白字符,即 `[^ \t\n\x0B\f\r]`。 5. `\w`:代表字母、数字或下划线,等同于 `[a-zA-Z_0-9]`。 6. `\W`:代表非字母、数字或下划线,即 `[^a-zA-Z_0-9]`。 此外,还有一些重要的边界匹配符: 7. `\b`:匹配单词边界,例如在单词的开始或结束位置。 8. `\B`:匹配非单词边界,即不在单词的开始或结束位置。 还有一些特殊字符用于匹配特定情况: 9. `\f`:匹配形式换页符。 10. `\e`:匹配转义字符。 11. `\G`:匹配上一次匹配的位置,或字符串的开头。 正则表达式中的量词用来指定一个字符或一组字符出现的次数: 12. `*`:匹配前面的子表达式零次或多次,例如 `J*0J`。 13. `+`:匹配前面的子表达式一次或多次,例如 `J+1J`。 14. `?`:匹配前面的子表达式零次或一次,例如 `JA?JJA`。 15. `{n}`:匹配前面的子表达式恰好n次,例如 `J{2}JJ`。 16. `{n,}`:匹配前面的子表达式至少n次,例如 `J{3,}JJJ`。 17. `{n,m}`:匹配前面的子表达式至少n次但不超过m次,例如 `J{3,5}JJJJJJJJJJJJ`。 在正则表达式中,可以使用括号 `()` 来创建子表达式,以及 `[]` 来定义字符类。`^` 在方括号内表示否定,例如 `[^a-z]` 表示匹配除小写字母之外的任何字符。 正则表达式还可以通过管道符 `|` 来进行或操作,例如 `J|AJA` 可以匹配 'J', 'A' 或 'JA'。在处理HTML文本时,可以使用正则表达式如 `<a.*href=\".*\">(.+?)</a>` 来提取链接的文本。 使用Java的`Pattern.compile(String regex, int flag)`方法编译正则表达式时,`flag`参数可以设置一些标志,如 `Pattern.CANON_EQ`,用于开启规范等价匹配,即忽略字符的全角/半角差异。 正则表达式提供了一种灵活且强大的方式来处理字符串,无论是简单的搜索还是复杂的模式匹配,都是开发人员必备的技能之一。"