📜  正则表达式 findall - Python (1)

📅  最后修改于: 2023-12-03 15:40:38.264000             🧑  作者: Mango

正则表达式 findall - Python

正则表达式是一种用于匹配字符串的模式语言,可以在Python中使用re模块来实现。findall()是re模块中最常用的函数之一,用于匹配字符串中所有符合模式的子串,并以列表的形式返回。

语法
re.findall(pattern, string, flags=0)

参数说明:

  • pattern:正则表达式的模式字符串。
  • string:需要进行匹配的字符串。
  • flags:可选参数,用于指定匹配模式。
使用示例

下面是一个简单的示例,用于从字符串中提取所有数字:

import re

string = 'The price is $42.50.'
pattern = '\d+'

result = re.findall(pattern, string)
print(result)  # ['42', '50']

在上面的示例中,使用\d+作为正则表达式,它表示匹配一个或多个数字。$字符在正则表达式中有特殊含义,表示字符串结尾,所以需要使用\进行转义。

匹配模式

findall()函数的第三个参数flags可以用于指定匹配模式,常用的匹配模式包括:

  • re.IGNORECASE:忽略大小写。
  • re.MULTILINE:多行模式,使^$匹配每行字符串的开头和结尾。
  • re.DOTALL:点(.)匹配所有字符,包括换行符。

例如,下面的例子演示了如何使用多行模式匹配字符串中的所有行:

import re

string = 'line1\nline2\nline3\n'
pattern = '^line\d+'

result = re.findall(pattern, string, re.MULTILINE)
print(result)  # ['line1', 'line2', 'line3']
结语

本文介绍了Python中正则表达式findall函数的基本用法和常见匹配模式。使用正则表达式可以方便地从字符串中提取需要的信息,对于一些文本处理的场景非常有用。