目录

0.关于正则表达式

        0.1 什么是正则表达式

        0.2 正则表达式的使用场景

        0.3 正则的目的

        0.4 正则的优缺点

1.re模块基本用法

        1.1 search

        1.2 match

        1.3 raw

        1.4 findall

        1.5 finditer

        1.6 sub

        1.7 compile

2.基本正则匹配

        1.1 区间 []

        2.2 或 |

        2.3 取反 ^

        2.4 任意字符 .

        2.5 快捷方式

        2.6 开始与结束 ^, $

 3.正则重复

        3.1 ?表示匹配前一项0次或者1次

        3.2 +表示匹配前一项至少1次​

        3.3 *表示匹配前一项任意次​

        3.4 {n,m}表示匹配n到m次  --》最长匹配

        3.5 贪婪匹配和非贪婪匹配



0.关于正则表达式

        0.1 什么是正则表达式

                描述了一种字符串匹配的模式,对符合某种规律的字符串的匹配和验证

        0.2 正则表达式的使用场景

数据挖掘:

        从一大堆文本中查找小文本,如ip、email...

验证:

        验证指定文本的格式是否正确,如邮箱格式...

        #当有简单的方法时,可以不使用正则表达式

        0.3 正则的目的

指定一个匹配规则,从而识别该规则是否在一个更大的文本字符串中

将一个规则分别一个或多个子规则,并展示每个子规则匹配的文本

        0.4 正则的优缺点

优点:提高工作效率,提高代码的简洁性

缺点:难以理解,上手难

1.re模块基本用法

        从文本中匹配某些子串

        1.1 search

        接受一个正则表达式和字符串,并返回发现的第一个匹配

        如果完全没有找到匹配,re.search返回None

        1.2 match

        定义

        接受一个正则表达式和字符串,从主串第一个字符开始匹配,并返回发现的第一个匹配

        如果字符串开始不符合正则表达式,则匹配失败,re.match返回None

 

        match.group(default=0)

        group是由于正则表达式可以分拆为多个只调出匹配子集的子组

        0是默认参数,表示匹配的整个串,n 表示第n个分组

        match.start()和match.end() 返回原始字符串开始和结束的索引

        match.groups()        

        groups返回一个包含所有小组字符串的元组,从 1 到 所含的小组号。 

        1.3 raw

         原始字符串与正常字符串的区别是原始字符串不会将\字符解释成一个转义字符

         #运行此语句,python解释器会转义一次,正则表达式内部还会转义一次,使用"r"获取原始字符串

        1.4 findall

        查找并返回所有匹配的字符串,返回一个列表

        1.5 finditer

        查找并返回匹配的字符串,返回一个迭代器

        1.6 sub

        将string中匹配的内容替换为新内容

        re.sub('匹配正则','替换内容','string')

        1.7 compile

        编译正则:re.compile('匹配正则')

         #其实并没有什么卵用

2.基本正则匹配

        1.1 区间 []

        2.2 或 |

        2.3 取反 ^

        2.4 任意字符 .

        匹配任何(除\n外)的单个字符,它仅仅只以出现在方括号字符组以外

        2.5 快捷方式

# \A 匹配字符串开始
# \b 词边界  --》只看单词字符不看特殊字符
# \B 两边都不是单词边界
# \w 匹配包括下划线的任意单词字符,等价于'[A-Za-z0-9_]'
# \W 匹配任何非单词字符,等价于'[^A-Za-z0-9_]'
# \d 匹配一个数字字符,等价于'[0-9]'
# \D 匹配一个非数字字符,等价于'[^0-9]'
# \s 匹配任意一个空白字符,包括空格、制表符、换页符等,等价于[\f\n\r\t\v]
# \S 匹配任何非空白字符,等价于[^\f\n\r\t\v]

        2.6 开始与结束 ^, $

        开始

         结束

 3.正则重复

        3.1 ?表示匹配前一项0次或者1次

        3.2 +表示匹配前一项至少1次

        3.3 *表示匹配前一项任意次

        3.4 {n,m}表示匹配n到m次  --》最长匹配

        3.5 贪婪匹配和非贪婪匹配

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐