正则表达式模式用于匹配和操作字符串中的特定文本。以下是一些常见的正则表达式模式及其用法:
1. 基本字符匹配
1.1 精确匹配
- 模式:
abc
- 描述:匹配字符串中出现的 "abc"。
1.2 任意单个字符
- 模式:
a.c
- 描述:匹配以 "a" 开头和 "c" 结尾,中间有任意单个字符的字符串。例如 "abc" 和 "a-c"。
2. 字符类
2.1 数字字符
- 模式:
\d
- 描述:匹配任何数字字符,相当于
[0-9]
。
2.2 非数字字符
- 模式:
\D
- 描述:匹配任何非数字字符。
2.3 字母字符
- 模式:
\w
- 描述:匹配任何字母、数字或下划线,相当于
[a-zA-Z0-9_]
。
2.4 非字母字符
- 模式:
\W
- 描述:匹配任何非字母、数字或下划线。
2.5 空白字符
- 模式:
\s
- 描述:匹配任何空白字符,如空格、制表符或换行符。
2.6 非空白字符
- 模式:
\S
- 描述:匹配任何非空白字符。
3. 量词
3.1 0 次或多次
- 模式:
a*
- 描述:匹配零次或多次 "a"。例如 ""、"a" 和 "aaa"。
3.2 1 次或多次
- 模式:
a+
- 描述:匹配一次或多次 "a"。例如 "a" 和 "aaa"。
3.3 精确次数
- 模式:
a{3}
- 描述:匹配恰好三次 "a"。例如 "aaa"。
3.4 最小次数
- 模式:
a{2,}
- 描述:匹配至少两次 "a"。例如 "aa" 和 "aaa"。
3.5 范围次数
- 模式:
a{2,4}
- 描述:匹配两到四次 "a"。例如 "aa"、"aaa" 和 "aaaa"。
4. 边界匹配
4.1 单词边界
- 模式:
\bword\b
- 描述:匹配单词 "word" 及其边界。例如 "word" 和 "wording" 中的 "word"。
4.2 非单词边界
- 模式:
\Bword\B
- 描述:匹配 "word" 在非单词边界中的出现。例如 "sword" 中的 "word"。
4.3 行的开始
- 模式:
^abc
- 描述:匹配以 "abc" 开头的行。
4.4 行的结束
- 模式:
abc$
- 描述:匹配以 "abc" 结尾的行。
5. 捕获组与非捕获组
5.1 捕获组
- 模式:
(abc)
- 描述:捕获并存储匹配的 "abc" 部分。
5.2 非捕获组
- 模式:
(?:abc)
- 描述:分组但不捕获匹配的内容。
5.3 捕获组的引用
- 模式:
(a)(b)\1\2
- 描述:匹配 "ab" 后跟重复的 "a" 和 "b",如 "abab"。
6. 先行断言与后行断言
6.1 先行断言
- 模式:
a(?=b)
- 描述:匹配 "a" 仅当它后面跟着 "b"。
6.2 否定前瞻
- 模式:
a(?!b)
- 描述:匹配 "a" 仅当它后面不跟着 "b"。
6.3 后行断言
- 模式:
(?<=b)a
- 描述:匹配 "a" 仅当它前面跟着 "b"。
6.4 否定后瞻
- 模式:
(?<!b)a
- 描述:匹配 "a" 仅当它前面不跟着 "b"。
7. 选择和替代
7.1 选择
- 模式:
a|b
- 描述:匹配 "a" 或 "b"。
7.2 替代
- 模式:
(?:a|b)
- 描述:分组匹配 "a" 或 "b",但不捕获。
8. 特殊字符
8.1 转义字符
- 模式:
\.
、\*
- 描述:匹配实际的点号
.
或星号*
。
8.2 任意字符
- 模式:
a.
- 描述:匹配 "a" 后跟任何单个字符。
9. 贪婪与非贪婪匹配
9.1 贪婪匹配
- 模式:
a.*b
- 描述:匹配尽可能多的字符,直到遇到 "b"。
9.2 非贪婪匹配
- 模式:
a.*?b
- 描述:匹配尽可能少的字符,直到遇到 "b"。
掌握这些常见的正则表达式模式,可以帮助你在各种编程任务中高效地处理字符串和文本数据。