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>
评论