1. 基本概念
字符匹配
.
: 匹配任意单个字符(除了换行符)。\d
: 匹配数字,等价于[0-9]
。\D
: 匹配非数字,等价于[^0-9]
。\w
: 匹配字母、数字或下划线,等价于[a-zA-Z0-9_]
。\W
: 匹配非字母数字或下划线,等价于[^a-zA-Z0-9_]
。\s
: 匹配任何空白字符(如空格、制表符、换行符)。\S
: 匹配任何非空白字符。
量词
*
: 匹配前面的元素零次或多次。+
: 匹配前面的元素一次或多次。?
: 匹配前面的元素零次或一次。{n}
: 匹配前面的元素恰好 n 次。{n,}
: 匹配前面的元素至少 n 次。{n,m}
: 匹配前面的元素至少 n 次,但不超过 m 次。
位置和边界
^
: 匹配输入字符串的开始位置。$
: 匹配输入字符串的结束位置。\b
: 匹配一个单词边界(word boundary)。\B
: 匹配非单词边界。
分组与选择
(...)
: 分组,用来提取特定的子字符串。|
: 或运算符,匹配左右任意一个表达式。
转义字符
\
: 用于转义特殊字符,例如\.
,\*
,\+
等。
2. 样例
邮箱地址:
[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}
电话号码(中国):
1[3456789]\d{9}
日期(YYYY-MM-DD):
\d{4}-\d{2}-\d{2}
提取 HTML 标签中的内容:
<(\w+)>(.*?)<\/\1>
评论