正则表达式
三种匹配模式
单行模式(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
参考资料
正则表达式文档
正则表达式好用的工具