Python中的正则表达式
发布时间:2025-05-24 20:02:05 发布人:远客网络
一、Python中的正则表达式
因为正则表达式中有两组小括号,即两个分组
findall会以元组形式返回所有分组中的内容,即[('127.0.0.1','.1')]
其中'127.0.01'表示匹配最外层大括号的内容
'.1'表示匹配'\.[0-9]{1,3}'的内容(最后一次重复时为.1)
由于('\.[0-9]{1,3}')为需要重复三次的分组,该括号不能省略
而使用findall就一定会显示括号分组的内容
若想只显示127.0.0.1而不显示'.1',可考虑使用match方法
返回从字符串起始位置开始,第一次匹配正则表达式的内容
match返回的结果为re.Match对象,可通过group()显示匹配的字符串,即127.0.0.1
通过groups()显示匹配的所有分组,即('127.0.0.1','.1')
二、必学干货!使用Python正则表达式匹配多个字符
1、在正则表达式的世界里,匹配多个字符是一个常用且强大的功能。它允许我们更灵活地处理和匹配字符串,简化了许多文本处理任务。匹配多个字符时,需要借助特定符号与技巧,以实现更加精细化的需求。在正则表达式的语法中,`.`是一个特殊符号,表示匹配任意单个字符(除换行符),但若要匹配多个字符,则需要采取其他策略。
2、例如,假设我们希望从文本中提取所有以字母或数字开始的单词。我们可以通过构造正则表达式`^[a-zA-Z0-9]+`来实现这一目标。这里的`^`符号意味着匹配字符串的开始位置,`[a-zA-Z0-9]`则表示可以匹配字母或数字,而`+`则表明前面的字符或表达式可以出现一次或多次。
3、进一步考虑,如果我们希望提取包含特定字符序列的所有单词,比如提取包含“apple”的字符串。这时,可以构造正则表达式`(\b[a-zA-Z]*apple[a-zA-Z]*\b)`。这里的`(\b)`表示单词边界,确保我们只匹配完整的单词,`[a-zA-Z]*`则匹配任何字母零次或多次,`apple`是固定要匹配的字符序列。
4、通过这些技巧和符号的组合使用,正则表达式能匹配多个字符,极大地增强了其处理文本数据的能力,无论是简单的字符匹配还是复杂的模式识别,都能轻松应对。
三、Python re模块 正则表达式之compile函数
1、为了重复利用同一个正则对象,需要多次使用这个正则表达式的话,使用re.compile()保存这个正则对象以便复用,可以让程序更加高效。
2、 re.L表示特殊字符集 w, W, b, B, s, S依赖于当前环境
3、 re.S即为'.'并且包括换行符在内的任意字符('.'不包括换行符)
4、 re.U表示特殊字符集 w, W, b, B, d, D, s, S依赖于 Unicode字符属性数据库
5、 re.X为了增加可读性,忽略空格和'#'后面的注释
6、在上面,当匹配成功时返回一个 Match对象,其中:
7、在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果有多个匹配模式,则返回元组列表,如果没有找到匹配的,则返回空列表。
8、注意: match和 search是匹配一次 findall匹配所有。
9、和 findall类似,在字符串中找到正则表达式所匹配的所有子串,并把它们作为一个迭代器返回。
10、 split方法按照能够匹配的子串将字符串分割后返回列表。
11、从上篇Python re模块正则表达式到这篇,我们已经把常用的正则匹配的方法学会了。
12、关注我,坚持每日积累一个技巧,长期坚持,我们将会不断进步。
13、#python##程序员##请回答,你的年度知识点##教育听我说##计算机#