正则表达式的构造摘要
正则表达式是一种强大的文本处理工具,用于匹配、查找、替换和提取字符串模式。它由一系列特殊字符和构造组成,可以构建出复杂精确的搜索模式。以下是对正则表达式构造的详细说明: 1. **转义字符**: - `\\` 反斜线用于转义特殊字符,例如 `\.` 匹配字符 '.',`\d` 匹配数字等。 - `\0n` 表示八进制值为 0 的字符,n 是 0 到 7 的数字。 - `\0nn` 和 `\0mnn` 分别表示八进制值的双位和三位数字。 - `\xhh` 匹配十六进制值为 hh 的字符。 2. **特殊字符**: - `\t` 制表符 - `\n` 新行 - `\r` 回车 - `\f` 换页 - `\a` 报警符 - `\e` 转义符 3. **字符类**: - `[abc]` 匹配 a、b 或 c。 - `[^abc]` 匹配除 a、b、c 之外的任何字符。 - `[a-zA-Z]` 匹配字母,包括 a 到 z 和 A 到 Z。 - `[a-d[m-p]]` 和 `[a-dm-p]` 用于创建并集。 - `[a-z&&[def]]` 和 `[a-z&&[^bc]]` 用于创建交集和减去特定字符集。 4. **预定义字符类**: - `.` 任何字符,可能匹配行结束符。 - `\d` 数字(0-9) - `\D` 非数字 - `\s` 空白字符 - `\S` 非空白字符 - `\w` 单词字符(字母、数字和下划线) - `\W` 非单词字符 - 更多预定义类如 `\p{Lower}`(小写字母)、`\p{ASCII}`(ASCII 字符)等,以及 Java 相关的属性。 5. **POSIX 字符类**: - `\p{Lower}`、`\p{Upper}` 等表示特定的字符类别,如小写和大写字母。 - `\p{Alpha}`、`\p{Digit}` 等用于匹配特定的字符属性。 6. **Unicode 块和类别**: - `\p{InGreek}` 匹配希腊字符块 - `\p{Lu}` 匹配大写字母类别 - `\P{InGreek}` 匹配非希腊字符 7. **边界匹配器**: - `^` 行开始 - `$` 行结束 - `\b` 单词边界 - `\B` 非单词边界 - `\A` 输入的开头 - `\G` 上一个匹配的结尾 - `\Z` 输入的结尾(不包含行结束符) - `\z` 输入的真正结尾 8. **数量词**: - `X?` 一次或没有 - `X*` 零次或多次 - `X+` 一次或多次 - `X{n}` 恰好 n 次 - `X{n,}` 至少 n 次 - `X{n,m}` 至少 n 次,但不超过 m 次 - 数量词后面加上 `?` 或 `+` 分别表示贪婪度降低(reluctant)或占有性(possessive)。 9. **逻辑运算符**: - `XY` X 后面跟着 Y - `X|Y` X 或者 Y - `(X)` 创建捕获组 - `(?idmsux-idmsux)` 设置和取消匹配标志 10. **Back 引用**: - `\n` 引用第 n 个捕获组 11. **特殊构造**: - `(?:X)` 非捕获组 - `(?idmsux-idmsux:X)` 在指定模式下进行匹配 通过这些构造,正则表达式能灵活地处理各种文本模式,广泛应用于编程语言、文本编辑器和搜索引擎中,进行数据验证、文本提取和替换操作。掌握正则表达式的基本构造是提高文本处理效率的关键。
- hangyuanbiyesheng2011-10-10资料中把正则表达式分类的列了一下,内容很简洁
- 粉丝: 3
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助