首页 > 其他分享 >正则表达式

正则表达式

时间:2022-12-17 18:35:37浏览次数:40  
标签:字符 匹配 正则表达式 捕获 xxx 贪婪 xyz

1. 字符
• [xyz] xyz之一
• [^xyz] 非xyz字符
• [a-z] [1-9] [A-Z] 范围,注意大小写
• \s \S 空白 或 除空白
• \t 制表符
• \d \D,数字非数字,可用[0-9]等价
• \w \W, 数字字母下划线 or 非,同上
• \n 换行,ps. 注意一下是不是有可能还有\r (win/linux/mac)
• . 除了\n的任意字符,
  但是要匹配任意字符[.\n]不生效,原因未知
  任意字符 可以使用[\s\S] [\d\D] [\w\W]代替
2. 限定符(匹配次数)
• + 一次或更多,贪婪
• *零次或更多 ,贪婪
• ? 零次或一次,贪婪
• {n} {n,m} {n,}
• +? 问号表示,不贪婪
• *?,不贪婪
3. 定位符
• ^ $
• \b \B, 单词边界(前后都行,会根据前后空白判断)
4. 小括号
• 捕获,利用\n,来引用(idx从1开始)
• 或者,(xxx|yyy),但是会被捕获,不想捕获使用(?:xxx|yyy)
• ?= ?<= ?! ?<!  预查(后匹配,前匹配,后不匹配,前不匹配),同样不捕获,该方法不支持不确定长度的匹配,例如*?等
5. 修饰符(与环境强相关)
• i, 不区分大小写
• g,全局匹配,如果字符串有多个匹配,都找出来
• m,多行匹配,^$变成每一行的开头和结尾,而不是整个字符串的
• \s,也匹配换行符

Tips:
如果不想匹配出某一段字符串,但是这一段字符串还需要在正则表达式中:
1. 利用前向后向匹配功能, ref: 上文小括号
利用捕获功能,然后只输出某些捕获部分

 

python例程

Import re
pattern = ""
str = ""
res = re.research(pattern, str,flags=0) # flag是修饰符参数
out = res.group() # group()不给参数默认等价于参数0,即输出全部,其他参数表示对应的捕获index
res1 = re.match(xxx) #同上,但是必须从str开头开始匹配,不然匹配不上

标签:字符,匹配,正则表达式,捕获,xxx,贪婪,xyz
From: https://www.cnblogs.com/qh4869/p/16989317.html

相关文章