我知道s/&/\&/g
会替换所有已转义的&符号并用&符替换它们。我想要更挑剔。如果他们在href中,我只想替换那些被忽略的&符号。我无法弄清楚。在href中更改&符
我尝试以下,但它不工作:
echo "<a href="http://example.com?q=man&string=1&bat=2">Link</a>" | sed -E 's/^href="(.*)&/\1&/g'
它没有工作。我还看到另外一个问题,那就是只能做一个逃脱的&符号的第一个实例,而不是全部。任何人都知道解决方案可能是什么?
你有一个HTML解析器访问语言运行?顺便说一句,HTML属性*内的URL中的&符号应该表示为'&',否则您可能冒险发生有趣和意外的行为。 – 2012-02-24 07:08:01
@ muistooshort - 不想要解析器...只是对这种情况感兴趣...我认为这个网址应该是&,但是这个网站只有在非转义的情况下才有效,因此它有很多链接将是很好的目标。 – user983223 2012-02-24 07:26:59
HTML中的URL格式与发送到远程服务器的URL不同。浏览器应该在发送URL之前应用HTML解码。也许你想提取'href'属性,然后HTML解码提取属性,而不是原地替换它们。 – 2012-02-24 07:35:53