码迷,mamicode.com
首页 > 其他好文 > 详细

正则表达式regex

时间:2019-12-29 20:49:25      阅读:106      评论:0      收藏:0      [点我收藏+]

标签:end   abc   height   字母   mic   重点   内容   转义符   技术   

元字符

字符描述字符描述
\ 转义符    
\d digit匹配数字=[0-9] \D 非数字
\w word匹配字母、数字、下划线。等价于‘[A-Za-z0-9_]‘ \W 非字母数字下划线
\s 空格,换行符,制表符 \S 非空白
\t table专门表示制表符    
\n 专门表示换行符    
. 除了换行符之外的任意内容    
[] 字符组 [^] 非字符组
^ 以……开头 $ 以……结尾
| 或(逻辑单位) 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

标签:end   abc   height   字母   mic   重点   内容   转义符   技术   

原文地址:https://www.cnblogs.com/qimingming/p/12116043.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!