📌 目录:

  1. 元字符概述
  2. 常见元字符列表
  3. 元字符示例
  4. 参考资料

1. 元字符概述

元字符(Metacharacters)是正则表达式中具有特殊含义的字符,区别于普通字符。它们用于定义匹配规则,例如匹配多个字符、指定重复次数、表示字符范围等。


2. 常见元字符列表

. – 任意字符(除换行符)

匹配除换行符 \n 以外的任何单个字符。

示例:

a.b

匹配 "acb""a1b""a@b",但不匹配 "ab"

s(单行模式)修饰符下,. 也能匹配换行符:

a.b

匹配:

a
b


^ – 匹配行首

匹配字符串的开头位置。

示例:

^hello

匹配 "hello world",但不匹配 "world hello"

多行模式(m 修饰符)下,匹配每一行的开头:

^hello

匹配:

hello world
hello again


$ – 匹配行尾

匹配字符串的结尾位置。

示例:

world$

匹配 "hello world",但不匹配 "world hello"


* – 0 次或多次

匹配前面的字符或表达式 0 次或多次(等价于 {0,})。

示例:

ab*

匹配 "a""ab""abb""abbb",但不匹配 "b"


+ – 1 次或多次

匹配前面的字符或表达式 1 次或多次(等价于 {1,})。

示例:

ab+

匹配 "ab""abb""abbb",但不匹配 "a"


? – 0 次或 1 次

匹配前面的字符或表达式 0 次或 1 次(等价于 {0,1})。

示例:

colou?r

匹配 "color""colour"


{} – 指定匹配次数

用于精确控制匹配次数。

  • {n} 匹配 n
  • {n,} 至少匹配 n
  • {n,m} 匹配 nm

示例:

\d{3,5}

匹配 3 到 5 位的数字,如 "123""1234""12345",但不匹配 "12""123456"


[] – 字符类

匹配字符集中的任何一个字符。

示例:

[aeiou]

匹配 "a""e""i""o""u"

字符范围:

[a-zA-Z0-9]

匹配所有大小写字母和数字。

取反(^ 作为首字符):

[^aeiou]

匹配除 "a""e""i""o""u" 之外的字符。


| – 逻辑或

匹配 | 两侧的任意表达式(相当于 OR)。

示例:

apple|banana

匹配 "apple""banana"


() – 分组与捕获

用于将多个字符组合成一个整体,同时支持捕获匹配内容。

示例(分组匹配):

(ab)+

匹配 "ab""abab""ababab"

示例(捕获组):

(\d{3})-(\d{4})

匹配 "123-4567",并捕获 "123""4567"


\ – 转义符

用于匹配元字符本身,如 .*+ 等。

示例:

\.com

匹配 "google.com",但不匹配 "googleXcom"


3. 元字符示例

正则表达式说明匹配示例不匹配示例
a.b. 代表任意字符"acb", "a1b""ab"
^hello"hello" 开头"hello world""world hello"
world$"world" 结尾"hello world""world hello"
ab*b 出现 0 次或多次"a", "ab", "abb""b"
ab+b 出现 1 次或多次"ab", "abb""a"
colou?r"u" 可选"color", "colour""colouur"
\d{3,5}3 到 5 位数字"123", "12345""12", "123456"

4. 参考资料

🔗 出站链接

🔗 站内链接


这样整理后,你觉得是否符合你的需求?😃