【发布时间】:2020-12-17 13:45:30
【问题描述】:
我有一个 Python 代码,它解析一个文本文件并在标签 @(my word) 中查找单词的实例。为此,我使用,例如:
import re
DEF_RE = r"(@\()(?P<text>.+?)\)"
sometext = "find the @(tagged text)."
m = re.search(DEF_RE, sometext)
print(m.group("text"))
tagged text
但是,如果文件包含分成两行的标记文本,则上述方法不起作用,例如,
sometext = "find the @(tagged\ntext)."
m = re.search(DEF_RE, sometext)
print(m)
None
有没有办法改变我的正则表达式字符串以允许文本被分割成一行?
【问题讨论】:
-
打开 DOTALL 标志。
re.DOTALL。或将.+?替换为(?:.|[\n\r])+? -
在搜索之前替换所有换行符怎么样?
-
试试
r"@\(.*[\n ]*.*\)"