正则表达式学习

正则表达式

运用场景:用于对字符串的查找,替换,分割

常用的正则符号
  1. 原字符
    指代直接存在于字符串内部的子串。
# 导入第三方包
import re

#提取出字符串中的Python子串
s1 = '通过几天Python的学习,感觉Pyhton很简单,非常容易上手!'
re.findall('Python',s1)
  1. 英文状态的句号点 " . "
    指代任意字符(如数组,字母,标点符号,汉字等),但除了换行符\n
#提取出动力总成的值
s2 = ’此次新朗逸主要搭载了1.5L和1.5T两种动力总成的发动机。别克英朗则搭载了1.0T和1.3T的动力总成。‘
re.findall('1...',s2)
re.findall('1\...',s2)
  1. 反斜杠 " \ "
    表示转义符,用于转换含义的符号。
    \n:指代换行
    \t:指代Tab制表符
    \d:指代0~9中的任一数字
    \s:指代任意一种空白(如空格、Tab、换行等)
    \w:指代字母、数字和下划线中的任意一种(字母52种,数字10种,下划线1种)
    .:指代句号本身
#剔除字符串中的所有空白
s3 = ’距离2019北京马拉松开跑只有两周时间了,\n今年的北京马拉松预报名人数超过16万人,\t媒体公布的中签率只有16%左右,再创历年来的新低。\n'

print(s3)
re.sub('\s','',s3)
  1. 英文状态的中括号 “[ ]”
    指代字符集合,当需要特定字符匹配时,可以选择中括号。
#取出手机号信息
s4 = ’用户联系方式:13612345566,用户编号为11011254321‘
re.findall('1[356789]\d\d\d\d\d\d\d\d\d',s4)

#提取出动力总成
s5 = ’通过对比新朗逸1.5L和1.5T两种动力在1.5年行驶期后的数据。发现1.5T的口碑相对较好!‘
re.findall('1.5[a-zA-Z]',s5)
  1. 英文状态的圆括号 “ ( ) ”
    指代待定内容的截取(抠)。
#提取出用户的年龄
s6 =id:1,name:Tom,age:3,gender:1;id:2,name:Lily,age:5,gender:0print(re.findall('\d',s6))	拿出所有数字
print(re.findall('age:\d',s6))	拿出age:加上数字
print(re.findall('age:(\d)',s6))	只拿出age后的数字
  1. 英文状态的问号 “ ? ”
    表示匹配前一个字符0次或1次
#超链接的匹配
URL1 = 'https://www.baidu.com/'
URL2 = 'http://www.gov.cn/'

pattern = 'https?://www\..*?'
  1. 加号 “ + ”
    表示匹配前一个字符1次及以上。
#邮箱地址的匹配
email1 = 'Lsxxx2011@163.com'
email2 = '654088115@qq.com'

pattern = '[0-9a-zA-Z_\.\-]+@[a-zA-Z0-9_\-]+\.com'
  1. 星号 “ * ”
    表示匹配前一个字符0次及以上。
#提取出产品名称中含有奶粉字样的产品
prod = ['婴儿袜','亨氏奶粉','奶粉勺','多功能奶瓶','幼儿奶粉量筒','磨牙棒']
res = []
for i in prod:
	res.extend(re.findall('.*奶粉.*',i))
  1. 英文状态的大括号 “ { } ”
    表示匹配前一个字符特定的次数或范围。
    {m}:匹配前一个字符m次
    {m,}:匹配前一个字符至少m次
    {m,n}:匹配前一个字符m~n次
    {,n}:匹配前一个字符至多n次
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值