短版: 我需要MySQL的代碼,這將改變MySQL的查找/替換在開始和結束字符串的字符,而不是字符串的中間
[HREF =「HTTP://一,隨機domain.com 「]超級鏈接[/ HREF]
成
< A HREF =」 http://a-random-domain.com」 >超級鏈接< /一個>
- 不搞亂域部分,和
- 而不會意外地轉換時可能發生的在字段的文本的「]任何無關實例。
- 每遇到 時,域將是唯一/不同的。
長版本: 我正在遷移舊數據庫以便與新應用程序一起使用。舊的數據庫具有包括內容,諸如文本字段:
這是與[HREF =「http://somedomain.com」]超級鏈接[/ HREF]和更多的數據和可能的其他數據字段超鏈接。
我需要將其更新爲標準html,例如,
這是與< A HREF = 「http://somedomain.com」 >超級鏈接< /一個>和更多的數據和可能的其他超鏈接的數據字段。
殺青[HREF =和[/ HREF]是很簡單的使用更換
update table set field = replace(field, '[href=', '<a href=');
,但我得到難倒了關於「]在href標籤的閉架,並在數據庫中有在其他情況下,「不應該修改],所以我不能隨便更換」]
的MySQL是否有某種形式的正則表達式‘期待’或其他方式來做到這一點的?
謝謝了!
可能看看http://stackoverflow.com/questions/986826/how-to-do-a-regular-expression-replace-in-mysql這樣的? 如果這是一次性交易,你可能會考慮在客戶端做這件事;例如一個簡短的Perl腳本來SELECT */UPDATE每一行。可能效率低下,但可用於這樣的簡單修復。 – BRFennPocock
謝謝!不確定這會對我有用,因爲像「]這樣的字符只有當它們被用作超鏈接的一部分時才需要變成」>「。如果沒有提供的mysql解決方案,我一定會用類似Perl的腳本來解決這個問題。再次感謝 – billrichards
在你的「短版」中,我認爲你的意思是'[href =「http://a-random-domain.com」] hyperlink [/ href]'而不僅僅是'[href =「http:// a-random-domain.com「]'? – ruakh