在mailto:使用notepad ++替换主题和正文在所有文件php中添加%20而不是空格

时间:2013-02-23 12:26:44

标签: php regex notepad++ space mailto

早上好,我有一个问题......我在每个帖子/评论中都有一个包含主题和正文的mailto博客,但是在单词之间有空格,我想用%20替换为更好的验证html。每个mailto都有不同的主题和正文,我想用notepad ++正则表达式替换只匹配这种字符串:

<A HREF="mailto:pippo@pluto.it?subject=Diario: Tanto per ridere un p&ograve;...&amp;body=Gentile visitatore, La informo che messaggi offensivi o volgari verranno scartati, buona prosecuzione." CLASS="hyperlink">Pippo Pluto</A>

<A HREF="mailto:topolino@paperino.it?subject=Diario: Dead Space e Dead Sapce 2&amp;body=Gentile visitatore, La informo che messaggi offensivi o volgari verranno scartati, buona prosecuzione." CLASS="hyperlink">Paolino Paperino</A>

结果我想:

<A HREF="mailto:picodepaperis@dysney.it?subject=Diario:%20Neutrini%20sfondano%20i%20300.000%20Km/s&amp;body=Gentile%20visitatore,%20La%20informo%20che%20messaggi%20offensivi%20o%20volgari%20verranno%20scartati,%20buona%20prosecuzione." CLASS="hyperlink">De Paperis Pico</A>

我有560个文件php包含空格,我想使用记事本++的正则表达式处理所有文件

我写了这个正则表达式,只找到了mailto字符串,但没有覆盖空格的出现。

<A HREF=\"mailto:([^"]*)\" CLASS="hyperlink">

有解决方案吗?谢谢,周末愉快!

3 个答案:

答案 0 :(得分:0)

您熟悉urlencode吗?为什么不使用它而不是在代码中添加编码字符串?

答案 1 :(得分:0)

%20是空格,在地址栏中写入空格,然后单击“输入”。没有问题:))

答案 2 :(得分:0)

我调整了你的Regex表达式以包含另外两个组并创建一个Find这样的字符串

<A HREF=\"mailto:([^"]*)(\s)(.*)\" CLASS="hyperlink">

并且Replace字符串应该是这样的

<A HREF=\"mailto:\1%20\3\" CLASS="hyperlink">

我的想法是捕获一个空格的出现并用%20替换它。但是,当您在记事本++(正则表达式模式)中应用Replace All时,它将仅替换所有匹配行上的一个空格,因此您必须多次单击Replace All,直到消息显示0 occurance was replaced

祝你好运。