你能简单地解释一下Python正则表达式语法吗
在本博客中,您将学习正则表达式(RegEx)并使用Python的re模块与之交互(通过示例)。
正则表达式(RegEx)是定义搜索模式的字符序列。例如,
^a...s $
上面的代码定义了一个RegEx模式。任何以a和s结尾的五个字母字符串都形成该模式。
Python有一个名为re的模块,可用于处理RegEx。以下是一个示例−
用于这些操作的不同类型的语法
re.findall()
re.findall()方法返回一个包含所有匹配项的字符串列表。
示例
从字符串中提取数字的程序
输出
如果找不到模式,则re.findall()返回一个空列表。
re.search()
re.search()方法接受两个参数:模式和字符串。该方法查找RegEx模式产生字符串匹配的第一个位置。
如果搜索成功,则re.search()返回匹配对象;否则,它将返回None。
字符串
示例
输出
这里,match包含一个匹配对象。
re.subn()
re.subn()类似于re.sub(),除了它返回一个包含新字符串和替换数的2个项目的元组。
示例
输出
re.split()
re.split 在分割具有匹配项的字符串后提供一个字符串列表。
示例
输出
如果找不到模式,则re.split()返回包含原始字符串的列表。
您可以将maxsplit参数传递给re.split()方法。它是将发生的最大拆分次数。
示例
输出
顺便说一下,maxsplit的默认值为0;意味着所有可能的分割。
re.sub()
re.sub()的语法是-
该方法返回一个字符串,其中匹配的出现替换为replace变量的内容。
示例
输出
如果找不到模式,则re.sub()返回原始字符串。
您可以将count作为第四个参数传递给re.sub()方法。如果省略,结果为0。这将替换所有出现次数。
示例
输出
匹配对象
您可以使用dir()函数获取匹配对象的方法和属性。
一些常用的匹配对象方法和属性是−
match.group()
group()方法返回有匹配的字符串部分。
示例
输出
这里,match变量包含一个匹配对象。
我们的模式(\d{3})(\d{2})有两个子组(\d{3})和(\d{2})。您可以获取这些括号化子组的字符串部分。以下是方法−
我们已经涵盖了re模块中定义的所有常用方法。如果您想了解更多,请访问Python 3 re模块。
在正则表达式之前使用r前缀
当在正则表达式之前使用r或R前缀时,它表示原始字符串。例如,’\n’是换行符,而r’\n’表示两个字符:反斜杠\后跟n。
反斜线\用于转义各种字符,包括所有元字符。但是,使用r前缀可以使\作为普通字符处理。
示例
输出
结论
因此,这些是我们尝试使用一些引人入胜的示例来解释的最基本和关键的正则表达式概念。其中一些是虚构的,但大多数是我们在清理数据时遇到的真实问题,因此,如果您将来遇到问题,请再次查看示例;您可能会在那里找到解决方案。