我需要在一个大的html文件中多次执行正则表达式查找和替换。
要查找的第一个字符串如下:
(?-i)(<p class=.+\r\n.+)([\d]{2}/[\d]{2}/[\d]{4})(((.+\r\n)+?)(.+>))(MIR)
要查找的第二个字符串是下一个出现的:
“Times New Roman”'> MIR
我的目标是将日期组([\ d] {2} / [\ d] {2} / [\ d] {4})插入第二个字符串,就在“MIR”之前
我尝试这样做是不成功的。
我想出的搜索字符串是这样的:
(?-i)()(MIR)((。+ r n)+?)((。+)?>)(MIR)
我想出的替换字符串是这样的:
\ 1 \ 2 \ 3 \ 7 \ 8 \ 10 \ 2 \ / \ 12
这是行不通的。
我需要在html文件中做很多这样的查找和替换操作。
你可以给我的任何帮助将不胜感激。
渣
尝试使用以下模式:
(<p class=.+\n.+)([\d]{2}/[\d]{2}/[\d]{4})(?:((.+\n)+?)(.+>))(MIR)
和替代
\1\2\3\4\5\2< br />\6
示例代码:
import re
regex = r"(<p class=.+\n.+)([\d]{2}/[\d]{2}/[\d]{4})(?:((.+\n)+?)(.+>))(MIR)"
subst = "\\1\\2\\3\\4\\5\\2< br />\\6"
# You can manually specify the number of replacements by changing the 4th argument
result = re.sub(regex, subst, test_str, 0)
if result:
print (result)
在线demo。