常用符号
.
:匹配任何单个字符(除了换行符)。^
:匹配字符串的开始位置。$
:匹配字符串的结束位置。*
:匹配前面的子表达式零次或多次(贪婪模式)。+
:匹配前面的子表达式一次或多次(贪婪模式)。?
:匹配前面的子表达式零次或一次,或使量词变为非贪婪模式。{n}
:匹配前面的子表达式恰好 n 次。{n,}
:匹配前面的子表达式至少 n 次。{n,m}
:匹配前面的子表达式至少 n 次,但不超过 m 次。[]
:定义字符集。例如,[abc]
匹配a
、b
或c
。[^]
:匹配不在括号内的任何单个字符。例如,[^abc]
匹配除了a
、b
和c
之外的任何字符。|
:匹配左边或右边的表达式。例如,a|b
匹配a
或b
。()
:定义分组,用于捕获和应用子表达式。例如,(abc)
匹配abc
,并捕获它作为一个组。\
:转义字符,用于匹配特殊字符本身或引用捕获组。例如,\d
匹配任何数字,\1
引用第一个捕获组。
常见的字符类
\d
:匹配任何数字,相当于[0-9]
。\D
:匹配任何非数字字符。\w
:匹配任何字母、数字或下划线,相当于[a-zA-Z0-9_]
。\W
:匹配任何非字母、非数字和非下划线的字符。\s
:匹配任何空白字符(包括空格、制表符、换行符等)。\S
:匹配任何非空白字符。
常用模式修饰符
(?i)
:不区分大小写模式。(?m)
:多行模式,使^
和$
匹配每一行的开始和结束。(?s)
:单行模式,使.
匹配换行符。(?x)
:允许在正则表达式中添加注释和空格,使其更易于阅读。
捕获组和非捕获组
(abc)
:捕获分组,匹配abc
并捕获它。(?:abc)
:非捕获分组,只用于分组,但不捕获匹配的内容。
示例
^\d{4}-\d{2}-\d{2}$
:匹配形如2024-08-19
的日期格式。\b\w+\b
:匹配单词边界上的一个或多个字母、数字或下划线。