'''
搜索:regex101 在线正则匹配
https://regex101.com/
'''
'''
数字:\d
非数字:\D
空字符串:\s
非空字符串:\S
accsii码:\w
非accsii码:\W
所有字符:*
单个任意字符:.
0个或者一个:?
出现m-n次:{m,n}
一个或多个:+
以什么开头:^
以什么结尾:$
或者:| ---> abc|bcd
匹配到的正则命名为name变量:{?P正则}
'''
'''
匹配'
xxx
''''
# re.compile('\w*)>.*(?P=tagname)>')
# re.match('
xxx
')#a = timeit.timeit(setup='''import re ; reg = re.compile('\w*)>.*(?P=tagname)>')''',stmt='''reg.match('
xxx
')''',number=1000000)#b = timeit.timeit(setup='''import re''',stmt='''re.match('\w*)>.*(?P=tagname)>','
xxx
')''',number=1000000)# print(a)
# print(b)
# 0.895464103505607
# 2.401233610585925
# 先写出正则表达式对象,然后匹配 效率高
'''
在:https://regex101.com/中 输入:
\w*)>.*(?P=tagname)>
\w*)>(.*)(?P=tagname)>
\w*)>.*(?P=tagname)>
xxx
想要什么结果,加括号
加括号进行分组
(\w*)>(.*)(?P=tagname)>) # 有三个组
'''
#先声明一个正则对象,通过正则对象去匹配,这样效率高
s = str("aa
xxx
到的 的 xxx")# reg = re.compile(r"(\w*)>(.*)(?P=tagname)>)") #加个r解决转义问题
reg = re.compile(r"(\w+)>(.*)(?P=tagname)>)") #加个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']