Python—正则表达式

单字符匹配

字符 匹配规则 示例
. 匹配任意一个字符(除了换行:\n) re.match("...", "ab") 
[] 匹配[ ]中的任意一个字符 re.match("1[34578]","18") 
\d 匹配任意一个数字字符,即0-9。\d = [0-9] re.match("\d", "2") 
\D 匹配任意一个非数字字符。\D = [^0-9] re.match("\D", "a") 
\s 匹配任意一个空白字符,相当于 [ \t\n\r\f\v] re.match("\s", "\ta")
\S 匹配任意一个非空白字符,相当于 [^ \t\n\r\f\v] re.match("\S", "\na") 
\w 匹配数字、字母、下划线中的任意一个字符,相当于 [a-zA-Z0-9_] re.match("\w", "_a") 
\W 匹配非数字、字母、下划线中的任意一个字符,相当于 [^a-zA-Z0-9_] re.match("\W", "1a") 

多字符匹配(匹配多个字符的相关格式:表示数量)

字符 匹配规则 示例
* 匹配前一个元字符出现0次或者多次,即可以有0次。 re.match("\d*", "123") 
+ 匹配前一个元字符出现1次或者多次,即至少有1次。 re.match("\d+", "123") 
? 匹配前一个元字符出现1次或者0次,即要么有1次,要么没有。 re.match("\d?", "1234abc") 
{m} 匹配前一个元字符出现 m 次。 re.match("\d{3}[a-z]", "1234abc") 
{m,} 匹配前一个元字符至少出现 m 次。 re.match("\d{3,}[a-z]", "1234abc") 
{m,n} 匹配前一个元字符出现m次到n次。 re.match("\d{3,5}[a-z]", "1234abc") 

表示边界

字符 匹配规则 示例
^ 匹配目标字符串的开始位置,多行模式下匹配每一行的开始  
$ 匹配目标字符串的结束位置,多行模式下匹配每一行的结束  
\b 匹配一个单词的边界。单词边界:数字字母下划线和其它字符的交界位置为单词的边界 示例如下  
\B 匹配非单词的边界。就是看单词两边是不是数字字母下划线。若是,即为非单词边界 示例如下 
\A 匹配字符串开始位置(^),忽略多行模式  
\Z 匹配字符串结束位置($),忽略多行模式  
import re

list = re.findall(r"\bis\b", "this is a test")
print list      # ['is']   is 左右两边都不是数字字母下划线的只有一个,即第二个is匹配成功(左右两边都是空格)。
list = re.findall(r"\bis\b", "this_is a test")
print list      # []       is 左右两边都不是数字字母下划线的没有一个。

原始字符串

str = "\nabc"
print str      # abc
str = "\\nabc"
print str      # \nabc
str = r"\nabc"
print str      # \nabc
import re

str = "\\nabc"
print str      # \nabc
str = r"\nabc"
print str      # \nabc

res = re.match("\\\\nabc", str)
print res.group(0)   # \nabc
res = re.match(r"\\nabc", str)
print res.group(0)   # \nabc
# str = "\\nabc" = r"\nabc"

  

https://blog.csdn.net/weixin_40907382/article/details/79654372

https://www.cnblogs.com/dyfblog/p/5880728.html

posted @ 2019-09-07 09:10  刘_love_田  阅读(296)  评论(0编辑  收藏  举报