正则表达式regex
Posted qimingming
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式regex相关的知识,希望对你有一定的参考价值。
元字符
字符 | 描述 | 字符 | 描述 |
---|---|---|---|
转义符 | |||
d | digit匹配数字=[0-9] | D | 非数字 |
w | word匹配字母、数字、下划线。等价于‘[A-Za-z0-9_]‘ | W | 非字母数字下划线 |
s | 空格,换行符,制表符 | S | 非空白 |
table专门表示制表符 | |||
专门表示换行符 | |||
. | 除了换行符之外的任意内容 | ||
[] | 字符组 | [^] | 非字符组 |
^ | 以……开头 | $ | 以……结尾 |
| | 或(逻辑单位) | abc|ab | 如果两个规则有重叠,长在前,短在后 |
() | 分组:把一部分正则规定为一组 | 限定|的作用域 | 限定一组正则的量词约束 |
量词:约束字符出现的次数
量词 | 描述 |
---|---|
{n} | 前面字符只出现n次数 |
{n,} | 至少出现n次 |
{n,m} | 至少出现n次,至多出现m次 |
? | 匹配0次或1次 ?前面的字符出现0次或1次都行 |
+ | 匹配1次或多次 |
* | 匹配0次或多次 |
d(.d+)? | 小数或整数 |
如图:
默认贪婪匹配,总是在符合量词条件的范围内尽可能多的匹配。【回溯算法:找到结尾,再回找要求的条件】
非贪婪匹配(惰性匹配):总是匹配符合条件范围内尽量小的
在量词后加? +?尽量少的取, +?3 一旦遇到3则匹配结束 元字符 量词 ?x 表示按照元字符规则在量词的范围内匹配,一旦遇到x就停止 #重点 .*?x 匹配任意内容的任意多次,一旦遇到x则停止 先判断是否是x,如果是就结束,如果不是,则继续
分组
分组命名 语法:(?P<组名>正则表达式) 引用分组 语法:(?P=组名)
引用分组,表示这个组中的内容与之前匹配的内容完全一致 1,匹配第一个分组中的内容,使用时需要在字符串前加r转义
?的作用
1.量词: ?,匹配0次或1次 2.非贪婪匹配,?放在量词后 元字符量词?————>在量词范围内,尽量少的取 .*?x 匹配任意内容的任意多次,一旦遇到x则停止 3.分组 分组命名:(?P<组名>) 引用分组:(?P=组名) 取消分组优先:(?:正则表达式)
以上是关于正则表达式regex的主要内容,如果未能解决你的问题,请参考以下文章
YouTube Vimeo 视频 ID 来自嵌入代码或来自带有 PHP 正则表达式 RegEx 的 URL