- 作者
- 校验数据的有效性
- 查找符合要求的文本
- 对文本进行切割和替换
- ...
- 特殊单字符
- . 任意字符(换行符除外)
- \d 任意数字 \D 任意非数字
- \w 任意字符数字下划线 \W 任意非字符数字下划线
- \s 任意空白符 \W 任意非空白符
- 空白符
- \r 回车符
- \n 换行符
- \f 换页符
- \t 制表符
- \v 垂直制表符
- \s 任意空白符
- 量词
- * 0到多次
- + 1到多次
- ? 0到1次
- {x} x次
\{x,\} 至少x次- {x,y} x到y次
- 范围
- | 或
- [...] 多选一
- [a-z] a到z任意单个元素
- [^...] 取反,不能是其中任意一个元素
- 断言(Assertion)
- 单词边界
- 行开始\结束
- 环视
- 贪婪匹配(Greedy):
- 表示次数的量词,默认都是贪婪,尝试尽可能最大长度去匹配
- 回溯:后面匹配不上,会回溯已匹配的再尝试
- 非贪婪匹配(Lazy)
- 量词后面加?,尽可能短地去匹配
- 回溯:后面匹配不上,会匹配更长再接着尝试
- 独占模式(Possessive)
- 量词后面加+,满足情况下尽可能长匹配
- 回溯:不回溯,匹配不上即失败
- 功能
- 将部分子表达式看成整体
- 后续查找替换中引用分组
- 分组编号
- 第几个括号就是第几个分组
- 非捕获分组 (?:正则)
- 括号嵌套需要看左括号的序号
- 命名分组 (?P<名称>正则)
- 分组引用
- 查找:查找重复出现的部分
- 替换:对原有内容格式进行改写
- 不区分大小写模式(Case Insensitive)
- (?i)
- 点号通配模式(Dot All)
- (?s)
- 多行模式(Multiline)
- (?m)
- ^匹配开头 $匹配结尾
- 注释模式(Comment)
- (?#comment)