正则表达式简介

165 阅读1分钟

正则表达式

三种匹配模式

单行模式(singleline)、多行模式(multiline)与忽略大小写(ignorecase); 可以用ihateregex.io/expr/userna… 或者c.runoob.com/front-end/8… 验证

定义regexoptions枚举嵌入标识符影响的表达式
单行模式更改点 (.) 的含义,使它与每一个字符匹配(而不是与除 \n 之外的每个字符匹配)singleline(?s)
多行模式更改 ^ 和 $ 的含义,使它们分别在任意一行的行首和行尾匹配,而不仅仅在整个字符串的开头和结尾匹配multiline(?m)
忽略大小写指定不区分大小写的匹配ignorecase(?i)

元字符

元字符描述
.匹配除换行符以外的任意字符
[]字符类,匹配方括号中包含的任意字符。
[^]否定字符类。匹配方括号中不包含的任意字符。
*匹配前面的子表达式零次或多次
+匹配前面子表达式一次或多次
?匹配前面的子表达式零次或一次。
{n,m}花括号,匹配前面字符至少n次,但是不超过m次
(x,y,z)按照确切的顺序匹配字符xyz
\分支结构,匹配分支结构其中一个字符
转义符,它可以还原元字符原来的含义,允许你匹配保留字符 `[ ] ( ) { } . * + ? ^ $ \
匹配行的开始
$匹配行的结束

断言

符号描述
(?=exp)正向先行断言:正则用于匹配?=前面的内容满足?=后面是exp
(?<=exp)正向后行断言:正则用于匹配exp后面满足某个条件的内容
(?!exp)负向正行断言:正则用于匹配exp后面不满足某个条件的内容
(?<!exp)负向后行断言:正则用于匹配exp后面不满足某个条件的内容

regex-vis: 可视化编辑正则的能力

regex-vis

边查边学的好网站

regex101.com/ 支持中文

正则表达式练习题目

regexlearn.com/zh-cn

参考资料

正则表达式文档

正则表达式好用的工具