【问题标题】:Matching multiline text with regular expressions [duplicate]使用正则表达式匹配多行文本[重复]
【发布时间】:2020-09-21 01:03:43
【问题描述】:

到目前为止,这是我的代码: re.compile(r'START OF EVENT .* END OF EVENT',text,re.DOTALL) 正文如下:

text=事件开始

日期:星期一

时间:3:50 - 5:00

描述:自带蛋糕

活动结束

我想创建一个正则表达式函数,从以下位置复制所有内容:事件开始,直到事件结束 我该怎么做?

【问题讨论】:

  • 否 :(。问题是我的文字是多行的
  • 先删除换行符,试试下面给出的代码...
  • 您是否查看过re.search 的文档?如果您需要点来匹配换行符,它会告诉您添加flags=re.DOTALL
  • \n 下面也给出了删除
  • @Grismar 我添加了 re.DOTALL

标签: python regex


【解决方案1】:

删除换行符:

>>>import re    
>>>>text = re.sub('\n', ' ', text)    
>>>text='START OF EVENT Date:Monday Time: 3:50 - 5:00 Description: Bring cake END OF EVENT'
>>>re.search('START OF EVENT.*END OF EVENT',text).group()
'START OF EVENT Date:Monday Time: 3:50 - 5:00 Description: Bring cake END OF EVENT'

【讨论】:

  • 有没有办法在不删除换行符的额外步骤的情况下获取文本?
  • 换行不用去掉,可以匹配re.DOTALL
  • @PeterPetigru 您希望得到怎样的结果?带有换行符的准确输入文本还是经过清理的文本?
  • 精确输入。新行和所有
  • 好的..然后在您的模式中应用 group(),例如 re.search('START OF EVENT.*END OF EVENT',text,re.DOTALL).group()
猜你喜欢
  • 2011-04-08
  • 1970-01-01
  • 2015-05-07
  • 1970-01-01
  • 2016-04-05
  • 2014-03-06
  • 1970-01-01
  • 2010-10-09
相关资源
最近更新 更多