学习笔记之正则表达式

学习笔记,仅供记录。

定义

正则表达式是指专门用于描述或刻画字符串内在规律的表达式

使用场景

1.无法通过切片将字符串的子串返回;
2.借助于replace方法无法完成非固定值或非固定位置值的替换;
3.借助于split方法无法按照多种值实现字符串的分割。

常用函数

#查找
findall(pattern,string,flags=0)
pattern:指定要匹配的正则表达式。
string:指定待处理的字符串。

flags:指定匹配模式

含义
re.I大小写不敏感
re.M多行匹配
re.S指明正则符号.可以匹配任意字符包括换行符\n
re.X允许正则表达式可以写得更加详细,如多行表示、忽略空白字符、加入注释等。
#替换
sub(pattern,repl,string,count=0,flags=0)
pattern:同findall函数中的pattern。
repl:指定替换成的新值。
string:同findall函数中的string。
count:用于指定最多替换的次数,默认为全部替换。
flags:同findall函数中的flags。
#分割
split(pattern,string,maxsplit=0,flags=0)
pattern:同findall函数中的pattern。
maxsplit:用于指定最大分割次数,默认为全部分割。
string:同findall函数中的string。
flags:同findall函数中的flags。

常用正则符号及示例

#导入第三方包(Regular Expression正则表达式)
import re

原字符
指代直接存在于字符串内部的字串

#提取出字符串中的Python字串
s1 = '感觉Python很简单,学Python却不易。'
re.findall('Python',s1)

英文状态的句号点 .
指代任意字符(如数字、字母、标点符号、汉字等),但除了换行符\n。

#提取出字符串中的年份
s2 = '2000年至2020年,发生了很多事'
re.findall('....年',s2)

反斜杠 \
表示转义符,用于转换含义的符号

含义
\n换行
\tTab制表符
\d0~9中的任一数字
\s任意空白(如空格、Tab、换行等)
\w字母、数字和下划线中的任意一种
\.句号点本身
#剔除字符串中的所有空白
s3 = '或许是 不知梦的缘故,\n流离之人      追逐\t幻影。'
re.sub('\s','',s3)

英文状态的中括号 []
指代字符集合,当需要特定字符匹配时,可以选择中括号。

#取出字符串中的手机号
s4 = '用户联系方式:18212345678,用户编号:123456789;'
re.findall('1[356789]\d\d\d\d\d\d\d\d\d',s4)

英文状态的圆括号 ()
指代特定内容的截取(抠)。

#提取出用户的年龄(只要年龄数字)
s5 = 'id:1,name:Tony,age:20;id:2,name:Tom,age:21'
re.findall('age:(\d\d)',s5)

星号 *
表示匹配前一个字符0次及以上
加号 +
表示匹配前一个字符1次及以上。
英文状态的问号 ?
表示匹配前一个字符0次或一次。

#超链接的匹配
URL1 = 'https://www.baidu.com/'
URL2 = 'http://www.gov.cn/'
pattern = 'https?://www\..*?'#注意此处.*?组合,*任意多个字符,?防止盲目匹配

#邮箱地址的匹配
email1 = 'xxx_2020@163.com'
email2 = '12345678@qq.com'
pattern = '[0-9a-zA-Z_\.\-]+@[0-9a-zA-Z_\-]+\.com'

英文状态的大括号 {}
表示匹配前一个字符特定的次数或范围{m}、{m,}、{m,n}、{,n}

#手机号码的匹配
pattern = ''1[356789]\d{9}'
#至少6个长度的密码
pattern = '\w{6,}'
#区号信息
pattern = '0\d{2,3}'
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值