Skip to content

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

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

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

Hello Golang