我想將諸如http://google.com/之類的鏈接轉換爲HTML,但是如果它們已經在HTML鏈接中,無論是在href =「」還是在鏈接文本中,我都不會不想轉換它們。將文本鏈接轉換爲HTML,並考慮上下文
我發現這在另一個問題:
preg_replace('@(https?:\/\/([-\w\.]+[-\w])+(:\d+)?(/([\w/_\.#-]*(\?\S+)?[^\.\s])?)?)@', '<a href="$1" target="_blank">$1</a>', $text);
但是,如果我有一些諸如:
<a href="http://google.com/">http://google.com/</a>
已經在討論的目標文本,它會創建一個HTML中的兩個環節。我似乎無法弄清楚它是在「/」之前還是在「」之內。
[請勿做它!](http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454) – cwallenpoole
bbpress做除了瀏覽他們的意大利麪代碼之外,我似乎無法弄清楚它是如何做到的。 –
上下文感知並不簡單,但您可能會忽略最小查找。用「(?<!href =」| src =「|」>)排除主要罪魁禍首的否定斷言(另一種常見方法是*通過移除已經HTML化的URL來規範化輸入文本) – mario