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

Python正则表达式,在多行上匹配模式..为什么不起作用?

能远
2023-03-14
问题内容

我知道进行解析时,我应该理想地删除所有空格和换行符,但是我只是为了快速解决此问题,所以不知道为什么它不起作用。带有“ ####
1”之类的包装器的文档,并尝试基于此进行解析,但是无论我尝试如何,它都无法正常工作,我认为我正确地使用了多行。

这根本不会返回任何结果:

string='
####1
ttteest
####1
ttttteeeestt

####2

ttest
####2'

import re
pattern = '.*?####(.*?)####'
returnmatch = re.compile(pattern, re.MULTILINE).findall(string)
return returnmatch

问题答案:

尝试re.findall(r"####(.*?)\s(.*?)\s####", string, re.DOTALL)re.compile当然也可以)。

此正则表达式将返回包含节号和节内容的元组。

对于您的示例,这将返回[('1', 'ttteest'), ('2', ' \n\nttest')]

(顺便说一句:您的示例无法运行,对于多行字符串,请使用'''"""



 类似资料:
  • 根据我的理解。匹配正则表达式中的几乎所有字符。那么,如果我想匹配任何字符,包括新行,为什么[.\n]*不起作用?

  • 问题内容: 我正在做一个小的javascript方法,该方法会接收到一个点列表,并且我必须阅读这些点才能在Google地图中创建多边形。 我在表格上收到这些要点: (lat,long),(lat,long),(lat,long) 因此,我完成了以下正则表达式: 我已经使用RegexPal和收到的确切数据进行了测试: 并且它可以正常工作,所以为什么当我在JavaScript中添加此代码后,结果中会收

  • 我有以下正则表达式和示例输入: http://regex101.com/r/xK9dE3 正如你所看到的,它与第一个“哟”相匹配。我只希望图案和“砍我”在同一行(第二个“哟”)图案上匹配。 如何确保正则表达式匹配只在同一行上? 输出: 预期输出(这是我真正想要的):

  • 问题内容: 我不明白为什么这个简单的正则表达式匹配不返回匹配对象。它返回None我在做什么错? 我完全是newby(昨天开始),想编写一个小程序来搜索文件夹树中的某些文件,打开这些文件并在这些文件中找到某些行,然后将这些行打印到一个新文件中。为了完成第一步,我想匹配os.walk返回的文件名,并使用某种模式进行匹配。因此,现在我正在检查正则表达式的工作方式,并且据我所知,以下代码应该匹配,但是当我

  • 我不知道为什么这个正则表达式不匹配。也许你能发现错误。 ficontents: 我想匹配>>>>>>客户端9462<<<<<捕获该号码,以及此后的所有内容,直到另一个客户端号码。所以我的第一个捕获是“9462”,第二个捕获是“Had a program exception;please check the error log”。 它使用JavaScript设置在regex101.com中工作得很好

  • 问题内容: 我正在制作一个键值解析器,其中输入字符串采用的形式。键可以包含字符,并且和值可以包含任何字符,但,,和需要用反斜杠前缀。逗号用于分隔键值对,但在最后一对之后不需要。 到目前为止,我已经可以匹配大多数键和值,但是很显然它将不能处理多于一对的字符或者任何“控制”字符都不能转义。似乎匹配所有转义字符,但不匹配任何“正常”字符。 有没有办法检查逗号分隔并匹配所有转义的“控制”字符以及普通字符?