在线匹配工具
正则语法
1.限定词
- 默认斜杠,理论上任何成对的字符都可以作为限定符
2.元字符(用来表示内容的语法)
-
字符本身,就是自身模式
-
字符组
- [xyz] 匹配若干字符之一
- 字符组元字符
- [0-9],[a-z] 在集合中 -(连字符)表示一个范围
- [^abc] 排除型字符组 不等于abc的任意字符
-
. 表示任意(除了换行符\n)的一个字符
-
| 或(多选结构)
-
(…) 括号 限制竖线的作用范围
-
< > 单词起始/结束位置 可能不支持
-
\w 字母数字下划线
-
\d 任意的数字
-
\s 任意的空白字符,空格,制表符(TAB) 垂直制表符(V-TAB)
-
\t 制表符
-
\n 换行符
-
\r 回车符
-
以上转义字符,如果大写表示取反
-
\W 除了字母数字下划线
-
\D 除了数字
-
\S 除了空白字符
-
\A 匹配开头
-
\z 匹配结尾
-
语义字符(这类元字符称为断言字符)
- ^ 匹配开头
- $ 匹配结尾
3.量词
- 元字符出现的次数
- {m, n} 闭区间,字符数量区间
- {m} 出现恰好 m 次
- {m,} m 次以上
- 快捷数量词
- * {0,n} 任意次数,可以为0次
- + {1,n} 至少一次,没有上限
- ? {0,1} 一次或者0次
- .+ 可以匹配至少一个空格
- 贪婪和懒惰
- 直接在元字符后使用问号,为量词
- 在量词后使用问号,问号为行为控制元字符,模式改变
4.模式修订符(放在结尾限定符之后)
- U 将正则中的所有量词,全部改为懒惰模式(仅php)
- i 大小写忽略 ignore-case
- x 忽略空白字符
- u 匹配utf8编码 4e00-9fa5
/\x{4e00}-\x{9fa5}/
- m 多行模式,所有数据看作一行
- 设置这个修饰符,模式中的点号元字符匹配所有字符,包括换行,没有这个修饰符,点号不匹配换行符
- s 单行模式 会匹配到\n
- 目标字符串是由单行字符组成(实际上可能包含多行),^ 仅匹配字符串开始位置,$仅匹配字符串末尾。当这个修饰符设置后,“行首”,和”行末“就会匹配目标字符串中任意换行符(\n)之前之后
5.括号及反向引用
- 括号中的引用会被捕获,通过\1,\2…等获取相应的捕获文本
- 不捕获 在子模式中加 ?:
6.断言
- 零宽断言,不占用任何字符
- 行首断言 ^
- 行尾断言 $
- 前瞻积极断言 (?=string) 向前匹配到string 则成功
- 前瞻消极断言 (?!string) 向前匹配不到string则成功
- 后瞻积极断言 (?<=string)
- 后瞻消极断言 (?<!string)
7.转义说明
- \加上元字符,表示匹配元字符所使用的普通字符
- \加上非元字符,组成一种由具体实现方式规定其意义的元字符序列
- \加上任意其他字符,默认情况就是匹配此字符(反斜线被忽略)