問題:作者在CMS中錯誤地添加了電子郵件地址 - 錯過了「mailto:」文本。正則表達式替換損壞的電子郵件鏈接
我需要一個正則表達式,如果可能的話,在存儲的MySQL內容表上進行搜索和替換。
情況下,我需要應付有:
- 沒有 '至mailto:'
- '的mailto:' 已經包括(正確)
- 網頁地址不是電子郵件 - 沒有更換
- 多個mailto:必需(多個字符串中的一個)
示例字符串爲:(爲了便於閱讀,添加了換行符)
<a href="[email protected]">[email protected]</a> and
<a href="mailto:[email protected]">[email protected]</a> and
<a href="http://www.test.com/">real web link</a>
second one to replace <a href="[email protected]">[email protected]</a>
需要的輸出將是:
<a href="mailto:[email protected]">[email protected]</a> and
<a href="mailto:[email protected]">[email protected]</a> and
<a href="http://www.test.com/">real web link</a>
second one to replace <a href="mailto:[email protected]">[email protected]</a>
我想(在PHP)什麼和問題:
pattern: /href="(.+?)(@)(.+?)(<\/a>)/iU
replacement: href="mailto:$1$2$3$4
這是增加至mailto:在格式正確的mailto:貪婪地行事在最後兩個鏈接。
感謝您的任何幫助。我看了一下,但因爲這是一個意外的內容問題,所以我沒有時間。
如果你能節省時間並給出SQL表達式,那會更好。
MySQL沒有REGEXP頂替內置有用戶定義的函數,但它看起來像一個轉儲隨後離線處理是最好的選擇 - 看: [堆棧溢出討論如何做-DO-A-正則表達式替換合的MySQL](http://stackoverflow.com/questions/986826/how-to-do-a-regular-expression-replace-in-mysql) – mjpg 2013-02-13 13:38:40