注册

详解Python re.finditer.DOTALL函数:启用 “.” 匹配任何字符模式

定义与作用

re.finditer()函数使用正则表达式搜索字符串,返回一个匹配的迭代器,每个迭代项都是匹配的对象。该函数与re.findall()功能类似,但返回的是一迭代器,可用于处理较大的文本数据,更加高效。

语法

re.finditer(pattern, string, flags=0)

参数

  • pattern: 正则表达式
  • string: 待匹配的字符串
  • flags: 正则表达式中的标志

返回值

match对象的迭代器。

DOTALL

re.DOTALL 可以让正则表达式中的 "." 匹配包括换行符在内的任意字符。

例子

下面提供两个实例来说明re.finditer.DOTALL函数的使用。

使用re.finditer()和DOTALL标志来匹配字符串中的所有换行符

import re

# 初始化字符串
text = '''this is 
a multiline
text'''

# 匹配每个换行符
regex = re.compile(r'.', re.DOTALL)

# 取得匹配对象
matches = regex.finditer(text)

# 打印匹配的内容
for match in matches:
    print(match.group())

输出结果:

t
h
i
s

i
s

a

m
u
l
t
i
l
i
n
e

t
e
x
t

使用re.finditer()和DOTALL标志来匹配字符串中的一个HTML标记及其内容

import re

# 初始化字符串
text = '''

Title

Paragraph 1

Paragraph 2

''' # 匹配
标记和它内部包括换行符的内容 regex = re.compile(r'
(.*?)
', re.DOTALL) # 取得匹配对象 matches = regex.finditer(text) # 打印匹配的内容 for match in matches: print(match.group())

输出结果:

Title

Paragraph 1

Paragraph 2

以上是re.finditer.DOTALL函数的作用与使用方法的完整攻略,希望对你有所帮助。