如何更改几个html代码

2024-09-30 22:19:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我在html页面中有以下几行

    <td style="color:#8C8C8C;font-size:10px;font-family:Arial,'Helvetica';text-align:center; padding:0 15px 0 15px;">Assurez-vous de bien recevoir tous nos messages en ajoutant reteuteu@cab05.net a votre carnet d'adresses.<br />
Si vous avez des difficult&eacute;s pour visualiser ce message, rendez-vous sur <a style="color:#8C8C8C;" target="_blank" href="#"><u>cette page</u></a>.</td>

我只需要把上面的换成

[{test}]

或者像这个

href="#">reteuteu.fr

并替换为:

href="http://mm.eulerian.net/dynclick/reteuteu/?eml-publisher=reteuteu&eml-name=deme_faible&eemail={email}&eurl=https://www.reteuteu.fr/?utm_source=ANIM&utm_medium=Targeting&utm_campaign=deme_faible&utm_term=CCCC_seg_men&utm_content=website">reteuteu.fr

我试图通过使用这样简单的bash工具来保持它的简单:sed -e 's~SEARCH_STRING~REPLACE_STRING~g' <string_to_be_searched>

问题是sed对于只有一行的字符串很有效,但是当我有换行符或元字符(如&)时它会出错。你知道吗

我听说python或perl可以做到这一点,但我不知道如何做到。你知道吗

最终我想以这种方式运行它

python script.py STRING_TO_SEARCH_WITH_LINE_FEED_OR_META_CHARACTERS STRING_TO_BE_REPLACE 

或者

perl script.pl STRING_TO_SEARCH_WITH_LINE_FEED_OR_META_CHARACTERS STRING_TO_BE_REPLACE 

我读过关于HTQL或HTML解析器的文章,但我需要关于如何做的提示。你知道吗

非常感谢你能给我的任何线索。你知道吗

第一个示例的预期输出是这样的

<td style="color:#8C8C8C;font-size:10px;font-family:Arial,'Helvetica';text-align:center; padding:0 15px 0 15px;">[{test}] <a style="color:#8C8C8C;" target="_blank" href="#"><u>cette page</u></a>.</td>

Tags: tosearchsizestringstylefrfamilyreplace
1条回答
网友
1楼 · 发布于 2024-09-30 22:19:20

通过Perl。你知道吗

$ perl -0777pe "s/<td style=\"color:#8C8C8C;font-size:10px;font-family:Arial,'Helvetica';text-align:center; padding:0 15px 0 15px;\">\K.*?(?=<a\b)/[{test}] /sg" file
    <td style="color:#8C8C8C;font-size:10px;font-family:Arial,'Helvetica';text-align:center; padding:0 15px 0 15px;">[{test}] <a style="color:#8C8C8C;" target="_blank" href="#"><u>cette page</u></a>.</td>

^{}在最后一次打印时丢弃先前匹配的字符。\K将迄今为止匹配的文本保留在整个正则表达式匹配之外。因此先前匹配的<td>标记被丢弃。然后这个.*?匹配到a标记开头的所有字符。这里.也匹配换行符,因为我们使用了DOTALL修饰符s(?=<a\b)正向前瞻,断言匹配必须后跟<a\b边界。你知道吗

-0777将记录分隔符值转换为null,从而允许正则表达式匹配换行符。你知道吗

相关问题 更多 >