python - 使用 re 匹配包含换行符的文本
问题描述
我有一个 Python 代码,它解析一个文本文件并在 tag 中找到单词的实例@(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
有没有办法更改我的正则表达式字符串以允许将文本拆分为一行?
解决方案
您应该在ing时打开DOTALL
标志。search
您可以替换re.search(DEF_RE, sometext)
为re.search(DEF_RE, sometext, flags=re.DOTALL)
推荐阅读
- ios - 在 SwiftUI 中,尝试使用辅助功能(sortPriority: 将 VoiceOver 聚焦在某些文本上
- r - 圆内点相对于中心的距离
- c++ - 在 Visual Studio Code 中定义 DEBUG 和 RELEASE 符号
- javascript - 如何在 React 中使用来自 axios 请求的数据填充数组
- json - 用 jq 修改嵌套对象
- java - 三维自回避随机游走的死胡同概率为零?
- php - 当我使用标志覆盖率运行 Phpunit 时,出现错误:未定义的变量工厂
- python - RDD的Pyspark平均间隔
- c# - 如何在设计时将控件放在前面而不手动移动控件?
- c++ - 如何正确执行 lex 和 yacc 之间的集成?