大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE稳定放心使用
python 正则表达式的语法及使用
概念:
按照程序员的指示,字符串里提取你要的数据。
应用:
爬虫清洗数据,匹配电话,匹配邮箱,匹配账号……
最重要的就是(.*?)
正则语法(元字符)
1、?:前面的内容出现0-1次
2、+ :前面的内容出现1-多次
3、* : 前面的内容出现0-多次
‘’’
正则(Regular):
记住的点:
1、(.?)
2、re.findall() 结果 是一个列表
3、用(.?)的是后,一定要复制,而不是手敲!
‘’’
import re
‘’’
正则语法(普通字符):
直接写的内容就是普通匹配!
re.findall(
参数1: 正则语法
参数2: 字符串文本
)
list index out of range: 下标越界
空列表,能去下标?
‘’’
str = “At the touch of love, the man becomes a poet.”
# 每个恋爱的男人,都是诗人! 男人的嘴,骗人的鬼!
data = re.findall(r’woman’, str)
print(data)
‘’’
正则语法(元字符):
1、^: 匹配开始
2、$: 匹配结尾
‘’’
str = “Lies don’t hurt, truth is the bayonet Lies bayonet”
data = re.findall(r’^Lies’, str)[0]
print(data)
data = re.findall(r’bayonet$’, str)
print(data)
‘’’
正则语法(元字符):
{10} :{}代表前面的字符出现10次数
不能通用匹配的问题!
1、手机一定用1开头
2、手机一定11位号码
选择用[]
‘’’
str = r’Jame:15659264582bir200001110052’
data = re.findall(r’1[0-9]{10}’, str)
print(data)
‘’’
正则语法(元字符):
1、|:管道符! 或
2、使用管道符,加上小括号!()
**** : 正则语法:不允许多任何东西! 空格 杂七杂八的东西
‘’’
str = r’小姐姐喜欢Python, 小妹妹喜欢Java, C++’
data = re.findall(r’(Python|Java)’, str)
print(data)
‘’’
正则语法(元字符):digital: 数字!
\d: 匹配数字 代表1个数字!
\D: 匹配非数字
1、?:前面的内容出现0~1次
2、+ :前面的内容出现1~多次
3、* :前面的内容出现0~多次
‘’’
str = ‘Mysql:3306,http:88’
data = re.findall(r’\d+’, str)
print(data)
‘’’
正则语法(元字符): word:普通字符
\w: 普通字符 字母,数字 … 一个普通字符
\W: 匹配非普通字符 *)$@^#
*str = ‘serve=? )$@^#8888你好’
data = re.findall(r’\w+’, str)
print(data)
data = re.findall(r’\W+’, str)
print(data)
‘’’
正则语法(元字符):space: 空格
\s: 匹配空格
\S: 匹配非空格
\r \n: 换行 \t: 4个空格!
‘’’
str = ‘hello \r \n \t word’
data = re.findall(r’\s+’, str)
print(data)
‘’’
正则语法(元字符):要求一个正则表达式匹配两句话 前面有内容(.*?)后面也要有内容
. : 代表任意字符
[]:选择!
. : 代表任意字符 任意字符可以出现0~多个
* : 0~多
3、用(.*?)的时候,一定要复制,而不是手敲!
‘’’
str_1 = “你这个女人长得真好看?I love you!”
str_2 = “你这个男人长得真的丑!I hate you!”
data = re.findall(r’看(.*?)I’, str_1)
print(data)
‘’’
正则语法(元字符):
re.S: 匹配换行符,通常用来抓小说!
1、带\r \n的内容提出来
2、\r, \n 用re.sub()替换成空
形成了完整的字符串!
‘’’
str = “老娘们,你为什么长的这么丑,\n I hate \n\r you!”
data = re.findall(r’老娘们,(.*?)!’, str, re.S)[0]
print(data)
data_1 = ‘老娘们’ + re.sub(’(\n|\r)’, ‘’, data)
print(data_1)
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/186334.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...