Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将包含换行符的文本与re匹配_Python_Regex_Re - Fatal编程技术网

Python 将包含换行符的文本与re匹配

Python 将包含换行符的文本与re匹配,python,regex,re,Python,Regex,Re,我有一个Python代码,它解析文本文件并在标记@(我的单词)中查找单词的实例。为此,我使用,例如: 重新导入 DEF_RE=r“(@\()(?P.+?)\” sometext=“查找@(标记的文本)。” m=重新搜索(定义,sometext) 打印(m.group(“文本”)) 标记文本 但是,如果文件包含拆分为两行的标记文本,则上述方法不起作用,例如 sometext=“查找@(标记的\ntext)。” m=重新搜索(定义,sometext) 打印(m) 没有一个 是否有方法更改我的正则

我有一个Python代码,它解析文本文件并在标记
@(我的单词)
中查找单词的实例。为此,我使用,例如:

重新导入
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