python正则compile
‘壹’ python正则表达式中re.compile('\\\n')匹配的为什么是换行符
你这个\\\n等同于\n,\n是换行符的意思,\后面如果不是什么t,r,n之类的,表示他的\后面的那个东西是没有意义的
\\,第一个反斜杠表示转义,意思是第二反斜杠不再视为一个转义字符。
在python看来\\字符,实际上只是一个\反斜杠。
‘贰’ python正则表达式是什么
python正则表达式是:
'hing'
'wing'
'123456'
'dddddd'
'regex.py'
'.*.py'
正则表达式(简称为 regex)是一些由字符和特殊符号组成的字符串, 描述了模式的重复或者表述多个字符。正则表达式能按照某种模式匹配一系列有相似特征的字符串。换句话说, 它们能够匹配多个字符串。
孤立的一个正则表达式并不能起到匹配字符串的作用,要让其能够匹配目标字符,需要创建一个正则表达式对象。通常向compile()函数传入一个原始字符形式的正则表达式,即 r'.....'。
要让正则表达式不区分大小写,可以向re.compile()传入re.IGNORECASE或re.I,作为第二个参数。通过传入re.DOTALL作为re.compile()的第二个参数,可以让句点字符匹配所有字符,包括换行字符。
‘叁’ Python正则re模块使用步骤及原理解析
Python正则re模块的使用步骤和基本概念如下:
首先,导入re模块,这是使用正则表达式的必要步骤:import re
接着,创建一个Regex对象,通过调用re.compile()函数,可以对正则表达式进行编译:regex_obj = re.compile(r'正则表达式模式')
然后,使用编译后的对象执行匹配,通过match_obj = regex_obj.search('输入字符串'),获取匹配结果。匹配成功后,可以调用match_obj.group(编号)来获取特定组的匹配内容,如果没有编号则使用match_obj.group()获取整个匹配的字符串。
例如,对电话号码的分组提取:regex_obj = re.compile(r'(\d{3})-(\d{3})-(\d{4})'),在输入'我司电话:035-411-1234'中,可以分别获取区号、中间号和四位数。
正则表达式中,还有一些特殊字符,如`\d`代表数字,`\w`代表单词字符,`\s`代表空格。如`\w\d\d\d-`可以匹配电话号码。
此外,`|`用于表示"或",`*`表示"零次或多次",`+`表示"一次或多次",`?`表示"零次或一次"。例如,`200|ok|successfully`可以匹配到200、ok或successfully。
使用findall()函数可以获取所有匹配的字符串行表,而sub()则用于替换字符串中的匹配部分。
正则表达式学习需要不断的实践和理解,希望以上内容能帮助大家更好地掌握Python的正则re模块。
‘肆’ Python re模块 正则表达式之compile函数
为了重复利用同一个正则对象,需要多次使用这个正则表达式的话,使用re.compile()保存这个正则对象以便复用,可以让程序更加高效。
1)re.compile
参数:
re.I 忽略大小写
re.L 表示特殊字符集 w, W, b, B, s, S 依赖于当前环境
re.M 多行模式
re.S 即为' . '并且包括换行符在内的任意字符(' . '不包括换行符)
re.U 表示特殊字符集 w, W, b, B, d, D, s, S 依赖于 Unicode 字符属性数据库
re.X 为了增加可读性,忽略空格和' # '后面的注释
案例:
在上面,当匹配成功时返回一个 Match 对象,其中:
2)re.findall
在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果有多个匹配模式,则返回元组列表,如果没有找到匹配的,则返回空列表。
注意: match 和 search 是匹配一次 findall 匹配所有。
参数:
案例:
3)re.finditer
和 findall 类似,在字符串中找到正则表达式所匹配的所有子串,并把它们作为一个迭代器返回。
案例:
4)re.split
split 方法按照能够匹配的子串将字符串分割后返回列表。
案例:
从上篇Python re模块 正则表达式到这篇,我们已经把常用的正则匹配的方法学会了。
关注我,坚持每日积累一个技巧, 长期坚持 ,我们将会不断进步。
#python# #程序员# #请回答,你的年度知识点# #教育听我说# #计算机#