python - 用python正则表达式替换多行
问题描述
我在一个大文件中有一个重复的文本,我想用其他文本替换它。例如:
一些文本.......\n 按范围分区 (STRT_DTTM)\n 更多文本......\n ); 我想使用正则表达式来查找这些以按范围分区开头并以 ) 结尾的块;并用“这是测试”替换该块。我正在使用以下代码导入重新
with open(r"C:\Users\x217838\Desktop\python\input.txt","rt") as in_file:
text = in_file.read()
s = re.compile("^partition by range(.*);\)$)",re.MULTILINE)
replace = re.sub(s, 'THIS IS TEST', text)
print(replace)
你能告诉我哪里出错了。
解决方案
您必须对所有正则表达式保留符号使用 \ --> [\^$.|?*+(){}
。最终代码将是:
import re
text = "partition by range(CANE) uno"
s = re.compile("^partition by range\(.*\)",re.MULTILINE)
replace = re.sub(s, 'THIS IS TEST', text)
print(replace)
结果是:
THIS IS TEST uno
推荐阅读
- android - Android导航组件清栈
- excel - 通过路径
- javascript - 如何根据状态值在反应中获取数据
- rest - Google 表格中的 Restful 帐户密钥是否需要特殊安全性?
- python - 将数据从html传递到python
- windows - 具有多个服务提供者和接口消费者的单个服务帐户
- java - Json 解析错误无法从 START_OBJECT 令牌中反序列化 `java.util.ArrayList` 的实例
- scala - 在Scala中通过内部集合元素的索引对集合进行排序
- javascript - 根据反应js中的条件将值从一个函数传递到另一个函数
- ssis - Integration Services 2019 - 执行流程任务 - WindowStyle 被忽略