正则表达式模式用于匹配和操作字符串中的特定文本。以下是一些常见的正则表达式模式及其用法:

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"。

掌握这些常见的正则表达式模式,可以帮助你在各种编程任务中高效地处理字符串和文本数据。