正则表达式1

本文详细介绍了正则表达式的基本概念、Python中的re模块使用方法,包括findall、split、sub等函数,并探讨了贪婪与非贪婪匹配、正则表达式分组等进阶主题,是学习正则表达式的实用教程。
摘要由CSDN通过智能技术生成

1、正则表达式的定义

  • 又叫做规则表达式,英语:Regular Expression,在代码中常简写为regex、regexp或RE
  • 正则表达式描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。本质是由一系列特殊符号和字符组成的字串。
  • 构造正则表达式的方法和创建数学表达式的方法一样。也就是用多种元字符与运算符可以将小的表达式结合在一起来创建更大的表达式。正则表达式的组件可以是单个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意组合。

  • 正则表达式是由普通字符(例如字符 a 到 z)以及特殊字符(称为"元字符")组成的文字模式。模式描述在搜索文本时要匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。

2、产生原因和特点

  1. 文本处理已经成为计算机常见工作之一
  2. 对文本内容的搜索,定位,提取是逻辑比较复杂的工作
  3. 为了快速方便的解决上述问题,产生了正则表达式。
  4. 优点:方便进行检索修改文本的操作,支持编程语言众多,使用灵活多样。

3、Python  re 模块

  • re.findall(pattern,string) 
  •     功能:使用正则表达式匹配字符串,如果正则表达式有分组则只显示子组内容。
  •     参数:pattern  正则表达式字符串    string  目标字符串
  •     返回值: 返回一个列表  匹配到的内容
import re
s = "my email is Levi@126.com or lvze@tedu.cn"
print(re.findall("\w+@\w+\.\w{2,3}",s))

运行结果:['Levi@126.com', 'lvze@tedu.cn']
  • regex = re.compile(pattern,flags=0)
  • 功能:生成正则表达式对象
  • 参数:pattern  正则表达式
  •            flags     功能标志位,丰富正则的匹配功能
  • 返回值:正则表达式对象
import re
regex = re.compile("abc")
print(dir(regex))

运行结果:['__class__', '__copy__', '__deepcopy__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'findall', 'finditer', 'flags', 'fullmatch', 'groupindex', 'groups', 'match', 'pattern', 'scanner', 'search', 'split', 'sub', 'subn']
  • list = regex.findall(string,pos=0,endpox=999)
  • 功能:根据正则表达式匹配目标字符串
  • 参数:string 目标字符串
  •            pos    标明从目标字符串的哪个位置开始匹配
  •            endpos  标明匹配到目标字符串的哪里
  • 返回:返回一个列表,内部为匹配到的内容
import re

#re调用findall
s = "abcdfghi"

l = re.findall(r"ab",s)
print(l)

#利用regex对象来调用findall
regex = re.compile(r"abcd")
l = regex.findall(s)
print(l)

运行结果:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值