当前位置: 首页 > 面试题库 >

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

封昊天
2023-03-14
问题内容

我需要从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...

问题答案:

但是,如果您需要在字符串中查找所有正则表达式匹配项,请使用该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']


 类似资料:
  • 问题内容: 我想匹配字符串中最后一次出现的简单模式,例如 但是,如果字符串 很 长,则会生成大量匹配项。有没有更直接的方法来匹配第二次出现的“ AAAA”,还是应该使用此替代方法? 问题答案: 您可以使用表示行末字符: 另外,请注意,这是变量的坏名称,因为它隐藏了内置类型。要访问列表的最后一个元素,您可以使用index:

  • 问题内容: 有没有办法查看一行是否包含与一组正则表达式模式匹配的单词?如果我有,并且想查看某行是否与其中任何一条匹配,我该怎么做?现在,我正在使用,但一次只能匹配1个正则表达式。 问题答案: 您可以使用内置函数(或如果所有正则表达式必须匹配)和生成器表达式来遍历所有正则对象。 (或者,当然,如果正则表达式不是预编译的正则表达式对象) 尽管与将正则表达式合并到单个表达式中相比,这是不够的- 如果此代

  • 问题内容: 由于表示两个字符,因此应使用和‘。但是,为什么和 与正则表达式不匹配? 问题答案: 默认情况下不会产生重叠匹配。但是,此表达式可以: 这是一个前瞻性断言: 如果…下一个匹配,则匹配,但不使用任何字符串。这称为先行断言。例如, 仅在后跟时匹配。

  • 本文向大家介绍python使用正则表达式匹配字符串开头并打印示例,包括了python使用正则表达式匹配字符串开头并打印示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python使用正则表达式匹配字符串开头并打印的方法。分享给大家供大家参考,具体如下: PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用: JavaScript正则表达式在线测试工具: http://too

  • 给定下面的字符串 [NeMo(PROD)]10.10.100.100(EFA-B-3)[博科FC-Switch]传感器:电源#1(SNMP自定义表)关闭(无此名称(SNMP错误#2)) 我尝试获取多个匹配项以提取以下值: 因为我是正则表达式的初学者,所以我试图定义一些“规则”: 提取第一个圆括号内的第一个值,例如PROD 提取第一个闭合方括号和第二个开口圆括号之间的值,例如10.10.100.10

  • 本文向大家介绍使用Java正则表达式匹配不可打印字符,包括了使用Java正则表达式匹配不可打印字符的使用技巧和注意事项,需要的朋友参考一下 通常有7个常见的不可打印字符,每个字符都有自己的十六进制表示形式。 名称 人物 十六进制表示 钟 \一种 0x07 逃逸 \ e 0x1B 换页 \F 0x0C 换行 \ n 0x0A 回车 \ r 0X0D 水平标签 \ t 0X09 垂直标签 \ v 0X