分享好友 行情首页 行情分类 切换频道
十分钟带你深入浅出正则表达式——从基础到进阶
2024-12-17 17:00  浏览:68

正则表达式(Regular expressions,也叫 REs、 regexs 或 regex patterns,本质上是嵌入 Python 内部并通过模块提供的一种微小的、高度专业化的编程语言。

正则常用功能

1、可以为想要匹配的可能字符串编写规则。这些字符串可能是英文句子、邮箱地址、TeX 命令或任何你喜欢的内容。

2、可以提出诸如“此字符串是否与表达式匹配?”、“字符串中是否存在表达式的匹配项?”之类的问题。

3、可以用正则来修改字符串,或以各种方式将其拆分。

正则的优点: 速度快, 效率⾼, 准确性⾼。

正则的缺点: 新⼿上⼿难度有点⼉⾼。


正则表达式是一种用来匹配字符串模式的表达式。它通过使用特殊的符号和字符组合,定义了一套匹配规则。我们抓取到的⽹⻚源代码本质上就是⼀个超⻓的字符串, 想从⾥⾯提取内容。⽤正则再合适不过了

元字符: 具有固定含义的特殊符号

常⽤元字符:

  • 匹配任意字符
  • 匹配字母或数字或下划线
  • 匹配数字
  • 匹配空白字符
  • 匹配换行符
  • 匹配制表符
  • 匹配非字母或数字或下划线
  • 匹配非数字
  • 匹配非空白字符
  • 匹配单词边界
  • 匹配非单词边界
  • 匹配字符串的开头
  • 匹配字符串的末尾
  • 匹配a或b
  • 字符集,匹配括号内的任意字符
  • 匹配不在括号内的任意字符
  • 特征标群,用于匹配与括号内的字符完全相同的字符串
  • 转义字符,用于匹配特殊字符,如[]、)、.等
 

量词: 控制前⾯的元字符出现的次数

  • 匹配前面的字符出现0次或无限次
  • 匹配前面的字符出现1次或无限次
  • 匹配前面的字符出现0次或1次
  • 匹配前面的字符出现n次
  • 匹配前面的字符出现n到m次
  • 匹配前面的字符出现0到m次
  • 匹配前面的字符出现n次或无限次
 

这些符号可以组合使用,形成复杂的匹配规则。


Python的模块提供了一系列函数来使用正则表达式。以下是一些常用函数

1.

用于从字符串的开始位置匹配正则表达式,如果匹配成功,则返回一个匹配对象;否则返回。

 

案例解读:此代码匹配一个电话号码格式的字符串,如。正则表达式定义了3个数字、一个、4个数字、再一个、最后是4个数字。

2.

用于在整个字符串中搜索第一个匹配项,即使匹配项不在字符串的开始位置。

 

案例解读:会在整个字符串中搜索电话号码,找到后返回匹配对象,返回匹配的字符串。

3.

返回所有匹配的字符串,对 string 的扫描从左至右,匹配结果按照找到的顺序返回。 空匹配也包括在结果中,以列表形式返回。

 

案例解读:会找到所有的数字,输出结果为。

4.

返回通过使用 repl 替换在 string 最左边非重叠出现的 pattern 而获得的字符串。 如果样式没有找到,则不加改变地返回 string。

 

案例解读:该正则表达式将字符串中的所有数字替换为,输出结果为。


正则表达式不仅可以用于简单的模式匹配,还可以通过分组、断言等方式,处理更复杂的文本。

1. 分组(Groups

使用括号可以创建捕获组,匹配的内容可以通过方法获取。

 

案例解读:通过分组,可以分别提取电话号码的各个部分。

2. 贪婪匹配和惰性匹配

1、贪婪匹配 正则表达式默认是贪婪匹配,即的匹配字符。

  • :匹配任意字符,尽可能多的匹配字符(贪婪匹配)。

2、惰性匹配 在正则表达式中,使用问号?表示该字符为非贪婪匹配,即的匹配字符。

  • :匹配任意字符,但尽可能少的匹配字符(惰性匹配)。

默认情况下,正则表达式是贪婪的,尽可能多地匹配字符。通过在量词后面加可以实现非贪婪匹配。

 

案例解读:贪婪匹配会匹配整个字符串,而只匹配到第一个。

3. 前后向断言(Lookahead 和 Lookbehind

断言用于检查匹配字符的前后是否满足某种条件。

  • 前向断言,检查后面的内容是否满足。
  • 后向断言,检查前面的内容是否满足。
 

案例解读:该正则表达式会找到,因为它后面跟着一个空格。


四、实际应用案例

1. 邮箱验证

正则表达式常用于验证邮箱地址的格式。

 
2. 提取网址中的域名

使用正则表达式从URL中提取域名。

 

五、总结

正则表达式作为处理字符串的强大工具,在Python的模块中提供了强大的功能。通过掌握正则表达式的基本符号和高级用法,可以轻松处理复杂的文本匹配需求。希望本文通过详细的讲解和实际案例,帮助你更好地理解和运用正则表达式。


推荐阅读

  • Python官方文档:https://docs.python.org/zh-cn/3/library/re.html
  • 正则表达式速查表:https://www.regex101.com
    以上就是本篇文章【十分钟带你深入浅出正则表达式——从基础到进阶】的全部内容了,欢迎阅览 ! 文章地址:http://w.yusign.com/quote/892.html 
     行业      资讯      企业新闻      行情      企业黄页      同类资讯      网站地图      返回首页 述古往 http://w.yusign.com/mobile/ , 查看更多   
最新新闻
微信视频号直播广告如何投放
我们现在发现很多企业做微信视频号的直播都要投广告了,没错,通过广告定向投放人群能将精准客户吸引到直播间,再通过主播的带货
IE浏览器软件哪个好 常用的IE浏览器软件排行
在这篇文章中,我们将深入探讨IE浏览器软件的热门选择及其在市场上的常用排行。无论是经典版本还是后续更新,你会了解到哪些浏览
Windows Phone 上的触控手势
下载代码示例当然,对于一种相对仍很年轻的技术来说,存在这么多的触控 API 也不足为奇。而且,多点触控比鼠标要复杂得多。这部
六年级上册16课夏天里的成长评课稿听课记录
六年级上册16课夏天里的成长评课稿听课记录一、读单元页,明确任务师:今天我们来学习第五单元,第五单元是一个习作单元。在这一
影视解说文案自动生成器-影视解说文案自动生成器2.50
在数字化时代的浪潮下,影视行业迎来了前所未有的发展机遇。随着影视作品的增多,怎样为这些作品打造出引人入胜的解说文案,成为
适合发朋友圈的句子大全11篇
【#好词好句# #适合发朋友圈的句子大全11篇#】旅行可以放松自己的心情,宽阔自己的心境,忘掉不顺心,迎接新的开心。旅行是在寻
从零开始学OPERA操作系统
1、房间查找 包括以下内容房间的状态分10种类型所有房间干净,经主管检查有问题,待查房干净房脏房一 快捷键的操作1 F1 OPERA HE
生成式AI为高级分析提供了新的可能性
生成式人工智能(genai) 的出现为工业过程分析带来了令人兴奋的新前景。这项变革性技术可以根据用户的提示生成新的文本、代码和图
阿里P9的真实生活!年薪300万却活得像穷人,依然生活在温饱线上……
  阿里巴巴是许多人梦想的工作地方。  在阿里,P9的年薪甚至高达300万。  他说,他的生活标准,其实并不高,只是跟随着收
本企业新闻
推荐企业新闻
发表评论
0评