正则表达式基础
1. 元字符
".":匹配除换行符之外的任意字符
"^":匹配行或者字符串的起始位置
"$":匹配行或字符串的结尾
"\s":匹配任意的空白字符(包括制表符,空格,换行等)
"\b":常用于匹配单词边界,如匹配”What‘s your name?“的your就要写成"\byour\b"
"\d":匹配数字,例如匹配三位数字123就要写成"\d\d\d"
"\w":匹配字母,数字,下划线
2. 反义元字符
"\D":匹配任意非数字字符,等价于[^0-9]
"\W":匹配除字母,数字,下划线外的任意字符
"\S":匹配非空白的任意字符
"\B":匹配非单词开始或结束位置
"[^x]":匹配除了x以外任意字符
3. 重复限定符
"*":x>=0
"+":x>=1
"?":x=0 or x=1
"{n}":x=n
"{n,}":x>=n
"{n,m}":n<=x<=m
4. 字符组
[xyz]匹配字符x,y或z.如果中括号内包含元字符,则元字符降级为普通字符,即[+.?]匹配加号,点号或问号。
5. 排除性字符组
[^xyz]匹配除了x,y或z以外的任意字符
6. 多选结构
a|b就是或的意思,表示a,b两者中的一个
7. 分组(括号)
括号常用来界定重复限定符的范围, 以及将字符分组(ab)+可以匹配ab、abab、ababab等
8. 转义字符
通常 \ * + | { [ ( ) ] } ^ $ . # 和 空白 这些字符都需要转义,使用\进行标识转义
9. 操作符的运算优先级
- \ 转义字符
- (), [] 圆括号或方括号
- *, +, ?, {n}, {n,}, {n,m} 限定符
- ^, $ 位置
- | 操作
摘自:路易斯的文章