Python 将包含换行符的文本与re匹配
我有一个Python代码,它解析文本文件并在标记Python 将包含换行符的文本与re匹配,python,regex,re,Python,Regex,Re,我有一个Python代码,它解析文本文件并在标记@(我的单词)中查找单词的实例。为此,我使用,例如: 重新导入 DEF_RE=r“(@\()(?P.+?)\” sometext=“查找@(标记的文本)。” m=重新搜索(定义,sometext) 打印(m.group(“文本”)) 标记文本 但是,如果文件包含拆分为两行的标记文本,则上述方法不起作用,例如 sometext=“查找@(标记的\ntext)。” m=重新搜索(定义,sometext) 打印(m) 没有一个 是否有方法更改我的正则
@(我的单词)
中查找单词的实例。为此,我使用,例如:
重新导入
DEF_RE=r“(@\()(?P.+?)\”
sometext=“查找@(标记的文本)。”
m=重新搜索(定义,sometext)
打印(m.group(“文本”))
标记文本
但是,如果文件包含拆分为两行的标记文本,则上述方法不起作用,例如
sometext=“查找@(标记的\ntext)。”
m=重新搜索(定义,sometext)
打印(m)
没有一个
是否有方法更改我的正则表达式字符串以允许文本在一行上拆分?当
搜索时,应打开DOTALL
标志
您可以将re.search(DEF\u-re,sometext)
替换为re.search(DEF\u-re,sometext,flags=re.DOTALL)
打开DOTALL标志。re.DOTALL
。或者将+?
替换为(?:.|[\n\r])+?
在搜索之前替换所有换行行行如何?请尝试r“@”(.[\n]*.*)”
不要建议(?:.|[\n\r])+?
。有众所周知的re.S
/re.DOTALL
/(?S)
解决方案,无需反复重复。@WiktorStribiżew ok