python - 忽略正则表达式匹配中的换行符
问题描述
我正在尝试使用以下脚本将所有匹配项替换为标题案例。当过滤词(在本例中为“ABC”和“DEF”)之间有换行符时,该行不会按预期替换。
在这种情况下如何忽略换行符?
编辑:我不想从字符串中完全去除所有换行符,而只去除过滤词之间的那些。
Edit2:我编辑了文本和脚本以更好地反映我遇到的问题。如果我包含flags=re.DOTALL
论点,它将给我:
mmm = "Hello Hello Hello Hello Hello Hello
Hello Hello Hello Hello",
Bbb = "Bbb",
而我想要的输出是(注意bbb
没有大写):
mmm = "Hello Hello Hello Hello Hello Hello
Hello Hello Hello Hello",
bbb = "bbb",
以下是我正在使用的脚本。
test_string = '''
mmm = "hello hello hello hello hello hello
hello hello hello hello",
bbb = "bbb",
'''
rex = r'(?<= mmm)(.*)(?=\")'
def maketitle(match_obj):
return match_obj.group(0).title()
formatted = re.sub(rex, maketitle, test_string, flags=re.DOTALL)
print(formatted)
解决方案
使用re.DOTALL
标志:
formatted = re.sub(rex, maketitle, string, flags=re.DOTALL)
print(formatted)
根据文档:
re.DOTALL
制作“。” 特殊字符完全匹配任何字符,包括换行符;没有这个标志,'.' 将匹配除换行符以外的任何内容。
推荐阅读
- php - 如何在目录中识别编号较高的文件并保存在变量中?
- user-interface - 为什么 MATPLOTLIB 中的文本框这么慢?
- javascript - 如何在执行 sed 时忽略文件中的特殊字符
- java - 如果应用程序使用网络浏览器链接,如何通过 Android TV 的 Google Play 商店资格?
- java - java中的调度程序是否有任何替代方法
- python - Pandas DataFrame 和 DateTimeIndex
- docker - Makefile 未在 NFS 上扩展文件 * 通配符
- javascript - 我需要根据独特的对象大小重复纹理
- plugins - 虚幻引擎中的 Leap Motion 运行良好,直到我将游戏打包到它不会跟踪任何东西的地方
- python - 在更少的时间戳(索引)上对 pandas 数据帧进行分组