正则表达式是一种强大的文本匹配工具,它用于检索、替换那些符合某种模式(规则)的文本。
基本匹配
- 文字:最简单的正则表达式是普通的字符,如
a、b、1等,它们会匹配文本中的相应字符。
特殊字符
.:匹配除换行符以外的任意单个字符。例如,a.b可以匹配acb、aab、a2b等。^:匹配行的开头。例如,^a会匹配以a开头的行。$:匹配行的结尾。例如,a$会匹配以a结尾的行。[ ]:匹配方括号内的任意字符。例如,[abc]会匹配a、b、或c。-:在方括号内使用时,表示字符范围。例如,[a-z]匹配任何小写字母。[^ ]:匹配不在方括号内的任意字符。例如,[^abc]会匹配除a、b、c之外的任意字符。
重复
*:匹配前面的字符零次或多次。例如,a*会匹配''、a、aa、aaa等。+:匹配前面的字符一次或多次。例如,a+会匹配a、aa、aaa等,但不会匹配''。?:匹配前面的字符零次或一次。例如,a?会匹配''和a。{n}:匹配前面的字符恰好 n 次。例如,a{3}会匹配aaa。{n,}:匹配前面的字符至少 n 次。例如,a{2,}会匹配aa、aaa等。{n,m}:匹配前面的字符至少 n 次,但不超过 m 次。例如,a{2,4}会匹配aa、aaa、aaaa。
特殊字符类
\d:匹配任何数字,等价于[0-9]。\w:匹配任何字母数字字符,等价于[a-zA-Z0-9_]。\s:匹配任何空白字符,包括空格、制表符、换行符等。
分组和引用
( ):将括号内的表达式定义为“组”(group),并按照顺序编号。可以使用\数字引用这些组。
或操作
|:匹配前后任意一个表达式。例如,a|b会匹配a或b。
实例应用
假设我们想匹配一个简单的日期格式 yyyy-mm-dd:
\d{4}-\d{2}-\d{2}
\d{4}匹配四位数字,表示年份。-是字面量字符,表示日期的分隔符。\d{2}匹配两位数字,表示月份和日期。