2

早上好,我有一个问题...我在每个帖子/评论中都有一个带有 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 包含空格,我想使用 notepad++ 的正则表达式处理所有文件

我写了这个正则表达式,它只找到 mailto 字符串,但不包括空格的出现。

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

有解决办法吗?谢谢,周末愉快!

4

3 回答 3

0

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

于 2013-02-23T12:28:44.993 回答
0

%20 是空格,在你的地址行写空格,然后点击回车。没有问题:)

于 2013-02-23T12:50:07.013 回答
0

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

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

Replace字符串应该是这样的

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

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

祝你好运。

于 2013-02-23T23:01:35.757 回答