需要使用正则表达式找到2个字符串,并在它们之间插入多行文本并插入替换文本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了需要使用正则表达式找到2个字符串,并在它们之间插入多行文本并插入替换文本相关的知识,希望对你有一定的参考价值。

我需要在一个大的html文件中多次执行正则表达式查找和替换。

要查找的第一个字符串如下:

(?-i)(<p class=.+
.+)([d]{2}/[d]{2}/[d]{4})(((.+
)+?)(.+>))(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=.+
.+)([d]{2}/[d]{2}/[d]{4})(?:((.+
)+?)(.+>))(MIR)

和替代

123452< br />6

示例代码:

import re
regex = r"(<p class=.+
.+)([d]{2}/[d]{2}/[d]{4})(?:((.+
)+?)(.+>))(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

以上是关于需要使用正则表达式找到2个字符串,并在它们之间插入多行文本并插入替换文本的主要内容,如果未能解决你的问题,请参考以下文章

text 崇高的正则表达式,找到2个字符之间的所有内容

如何在 Atom 中使用正则表达式在文本字符串中插入符号(Mac OS)

正则表达式在两个字符串(它们是变量)之间提取

正则表达式获得两个字符串之间的内容

正则表达式 - 在第 n 个空格之间匹配数据并在第 n 个空格处停止

将冒号插入Mac地址列表