我知道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