📌 目录:
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}
匹配n
到m
次
示例:
\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. 参考资料
🔗 出站链接
🔗 站内链接
这样整理后,你觉得是否符合你的需求?😃
发表回复