返回

屡见不鲜的正则宝典,从此告别正则困扰

前端

正则表达式是一种强大的文本处理工具,能够根据指定规则对字符串进行匹配。它被广泛应用于编程、数据处理和网络安全等领域。然而,正则表达式也以其晦涩难懂而著称,初学者往往需要花费大量时间才能掌握它的用法。

本文精选了一些最常见的正则表达式,并配以清晰易懂的示例,帮助读者快速掌握正则表达式的基本用法。

1. 元字符

元字符是正则表达式中最重要的组成部分,它代表着特定的含义。下表列出了常用的元字符及其含义:

元字符 含义 示例
. 匹配任意单个字符 a.b 匹配 "abc"、"a1b"、"a@b" 等
* 匹配前面的子表达式零次或多次 a*b 匹配 "ab"、"aaab"、"aaaab" 等
+ 匹配前面的子表达式一次或多次 a+b 匹配 "ab"、"aab"、"aaab" 等
? 匹配前面的子表达式零次或一次 a?b 匹配 "ab"、"b",但不匹配 "aab"
^ 匹配字符串的开头 ^a 匹配 "abc"、"a1b",但不匹配 "bca"
$ 匹配字符串的结尾 a$ 匹配 "abc"、"a1b",但不匹配 "abca"

2. 字符类

字符类用于匹配一组字符。下表列出了常用的字符类及其含义:

字符类 含义 示例
[abc] 匹配字符 "a"、"b" 或 "c" [abc]at 匹配 "cat"、"bat"、"cab" 等
[^abc] 匹配除字符 "a"、"b" 和 "c" 之外的任何字符 [^abc]at 匹配 "dot"、"eat"、"fit" 等
\d 匹配数字 \d+ 匹配 "123"、"456"、"789" 等
\w 匹配字母、数字和下划线 \w+ 匹配 "abc"、"123"、"a1b2c3" 等
\s 匹配空白字符,包括空格、制表符和换行符 \s+ 匹配 " "、" "、"\n" 等

3. 量词

量词用于指定子表达式的匹配次数。下表列出了常用的量词及其含义:

量词 含义 示例
* 匹配前面的子表达式零次或多次 a*b 匹配 "ab"、"aaab"、"aaaab" 等
+ 匹配前面的子表达式一次或多次 a+b 匹配 "ab"、"aab"、"aaab" 等
? 匹配前面的子表达式零次或一次 a?b 匹配 "ab"、"b",但不匹配 "aab"
{n} 匹配前面的子表达式恰好 n 次 a{2}b 匹配 "aab",但不匹配 "ab" 或 "aaab"
{n,} 匹配前面的子表达式至少 n 次 a{2,}b 匹配 "aab"、"aaab" 等,但不匹配 "ab"
{n,m} 匹配前面的子表达式至少 n 次,但至多 m 次 a{2,4}b 匹配 "aab"、"aaab"、"aaaab" 等,但不匹配 "ab" 或 "aaaaaab"

4. 分组

分组用于将正则表达式划分为子表达式。子表达式可以被单独引用和修改。下表列出了常用的分组语法:

语法 含义 示例
() 将子表达式分组 `(a
(?:) 将子表达式分组,但不捕获匹配结果 `(?:a
(?<name>) 将子表达式分组并捕获匹配结果,其中 "name" 是捕获组的名称 `(?a

5. 替换

正则表达式还可以用于替换匹配到的字符串。下表列出了常用的替换语法:

语法 含义 示例
s/old/new/ 将字符串中的 "old" 替换为 "new" s/abc/xyz/ 将 "abc" 替换为 "xyz"
s/old/new/g 将字符串中的所有 "old" 替换为 "new" s/abc/xyz/g 将 "abc"、"abcabc" 替换为 "xyzxyz"
s/old/new/i 将字符串中的 "old" 替换为 "new",忽略大小写 s/abc/xyz/i 将 "abc"、"ABC" 替换为 "xyz"

6. 实例

下表列出了几个正则表达式实例,以帮助读者更好地理解正则表达式的用法:

正则表达式 匹配内容 示例
^a 以字母 "a" 开头的字符串 "abc"、"a1b" 等
b$ 以字母 "b" 结尾的字符串 "abc"、"b1c" 等
a.b 由字母 "a"、一个任意字符和字母 "b" 组成的字符串 "abc"、"a1b" 等
a*b 由字母 "a"(零次或多次)和字母 "b" 组成的字符串 "ab"、"aaab"、"aaaab" 等
a+b 由字母 "a"(一次或多次)和字母 "b" 组成的字符串 "ab"、"aab"、"aaab" 等
a?b 由字母 "a"(零次或一次)和字母 "b" 组成的字符串 "ab"、"b"
[abc]at 由字母 "a"、"b" 或 "c" 开头,以字母 "t" 结尾的字符串 "cat"、"bat"、"cab" 等
[^abc]at 由除字母 "a"、"b" 和 "c" 之外的任何字符开头,以字母 "t" 结尾的字符串 "dot"、"eat"、"fit" 等
\d+ 由一个或多个数字组成的字符串 "123"、"456"、"789" 等
\w+ 由一个或多个字母、数字或下划线组成的字符串 "abc"、"123"、"a1b2c3" 等
\s+ 由一个或多个空白字符组成的字符串 " "、" "、"\n" 等

希望这篇文章能够帮助读者快速掌握正则表达式的基本用法。