Python-使用正则表达式查找多个匹配项并将其打印出来

问题描述

但是,如果您需要在字符串中查找所有正则表达式匹配项,请使用该findall函数

import re
line = 'bla bla bla<form>Form 1</form> some text...<form>Form 2</form> more text?'
matches = re.findall('<form>(.*?)</form>', line, re.DOTALL)
print(matches)

# Output: ['Form 1', 'Form 2']

解决方法

我需要从HTML源文件中查找表单的内容,我进行了一些搜索,找到了一种很好的方法来执行此操作,但是问题是它仅打印出第一个找到的内容,我如何遍历它并输出所有表单内容,而不是只是第一个?

line = 'bla bla bla<form>Form 1</form> some text...<form>Form 2</form> more text?'
matchObj = re.search('<form>(.*?)</form>',line,re.S)
print matchObj.group(1)
# Output: Form 1
# I need it to output every form content he found,not just first one...