格式 a=re.match(正则表达式,匹配的内容)
match 以什么开头的字符串 search是搜素连续的数值
基础:
. 匹配任意一个字符 除了、\n
[]匹配【】中的字符
{}想要匹配的个数 匹配首个元素
| 或者 () 分组
量词:
* 匹配一个字符出现的0次或者无限次
+ 匹配一个字符出现的1次或者无限次
? 一次或者零次
{m,n}匹配从m到n次
{m,} 大于等于m
预定义:
\d数字 0-9
\D匹配非数字
\s匹配空白 空格 tab \w a-z A-Z 0-9
\W 非单词字符
\b 边界
^ 匹配以什么开头
$ 以什么结尾
分组:
1、()--》group(i) number name
重名 (?P<name>) (?P=name)
r"\d+"表示匹配连续的多个数值, 字符+表示重复前面一个匹配字符一次或者多次
import re
r = r"ab+"
m = re.search(r,"abcdef")
print(m.group())
ab
r = r"ab*"
m = re.search(r,"abcdef")
print(m)
<re.Match object; span=(0, 2), match='ab'>
# +的使用
names = ["laowang","laoli","xiaoming","laoma"]
for name in names:
ret = re.match('[\w]+[\w]*',name).group()
print(ret)
laowang
laoli
xiaoming
laoma
#{m,n}
ret1 = re.match('[\w]{1,5}','12345614').group()
print(ret1)
12345
#匹配邮箱
hello = '1104344069@qq.com'
ret2 = re.match('[\w]*@qq.com',hello).group()
print(ret2)
1104344069@qq.com
# msg = "abcd4jkl5iop"
#
# res = re.findall("[a-z][0-9]+[a-z]",msg)
# print(res)
['d4j', 'l5i']
# qq号验证问题
qq = '110344069'
res = re.match("^[1-9][0-9]{4,10}$", qq)
print(res.group())
110344069
# 用户名可以是字母或者数字 不能以数字开头 用户名长度必须在6位以上
# username = 'dsdi123nnnn'
#
# res1 = re.match("^[A-Za-z][\w]{5,}$",username)
#
# print(res1.group())
dsdi123nnnn
msg = 'a.py b.py ab.py ac.txt'
res2 = re.findall(r'\w*\.py\b', msg)
print(res2)
['a.py', 'b.py', 'ab.py']
phone = '029-45861289'
result = re.match(r'(\d{3}|\d{4})-(\d{8})$',phone)
print(phone)
print(result.group(1))
print(result.group(2))
029-45861289
029
45861289
email1 = "110344069@qq.com"
result = re.match(r'\w{5,10}@(168|126|qq)\.(com|cn)$',email1)
print(result.group())
110344069@qq.com
#爬取网页
m = '<html><body><div>123<div><body><html>'
result = re.match(r'<([0-9a-zA-Z]+)><([0-9a-zA-Z]+)><([0-9a-zA-Z]+)>(.+)</\3></\2></\1>$',m)
print(result)
版权声明:本文为weixin_60719780原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。