python 笔记 之 re模块 正则及效率问题

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

'''
搜索:regex101  在线正则匹配
https://regex101.com/
'''

'''
数字:\d
非数字:\D
空字符串:\s
非空字符串:\S
accsii码:\w
非accsii码:\W
所有字符:*
单个任意字符:.
0个或者一个:?
出现m-n次:{m,n}
一个或多个:+
以什么开头:^
以什么结尾:$
或者:|   --->  abc|bcd
匹配到的正则命名为name变量:{?P正则}


'''
'''
匹配'

xxx

' ''' # re.compile('<(?P\w*)>.*') # re.match('

xxx

') #a = timeit.timeit(setup='''import re ; reg = re.compile('<(?P\w*)>.*')''',stmt='''reg.match('

xxx

')''',number=1000000) #b = timeit.timeit(setup='''import re''',stmt='''re.match('<(?P\w*)>.*','

xxx

')''',number=1000000) # print(a) # print(b) # 0.895464103505607 # 2.401233610585925 # 先写出正则表达式对象,然后匹配 效率高
'''
在:https://regex101.com/中 输入:
<(?P\w*)>.*
<(?P\w*)>(.*)
<(?P\w*)>.*

xxx

想要什么结果,加括号 加括号进行分组 (<(?P\w*)>(.*)) # 有三个组 '''

 

#先声明一个正则对象,通过正则对象去匹配,这样效率高
s = str("aa

xxx

到的 的 xxx") # reg = re.compile(r"(<(?P\w*)>(.*))") #加个r解决转义问题 reg = re.compile(r"(<(?P\w+)>(.*))") #加个r解决转义问题 a=reg.match(s) # 以开头进行匹配,没有返回空 print(a) # None b=reg.search(s).groups() # 从开头进行匹配,然后匹配第二个,返回一个结果 g=reg.search(s).group("tagname") # 从开头进行匹配,然后匹配第二个,返回一个结果 # group()[1] print(b) #('

xxx

', 'h1', 'xxx') print(g) #h1 # reg.split() t = reg.findall(s) print(t) #[('

xxx

', 'h1', 'xxx'), ('xxx', 'html', 'xxx')] # reg.groups() # match search 的 # 利用 https://regex101.com/ 实时调试修改

 

x = '1one2two3three4four'
reg1 = re.compile("\d")
c = reg1.findall(x) # 查找正则   -- 匹配所有的
d = reg1.split(x)  # 正则为分隔符
print(c)  # ['1', '2', '3', '4']
print(d)  # ['', 'one', 'two', 'three', 'four']

转载于:https://my.oschina.net/u/3824134/blog/1807707

你可能感兴趣的:(python 笔记 之 re模块 正则及效率问题)