问题:作者在 CMS 中错误地添加了电子邮件地址 - 遗漏了“mailto:”文本。
如果可能的话,我需要一个正则表达式来对存储的 MySQL 内容表进行搜索和替换。
我需要处理的情况是:
- 没有'mailto:'
- 'mailto:' 已包含(正确)
- 网址不是电子邮件 - 不可替换
- 多个mailto:必需(字符串中的多个)
示例字符串为:(添加换行符以提高可读性)
<a href="add1@test.com">add1@test.com</a> and
<a href="mailto:add2@test.com">add2@test.com</a> and
<a href="http://www.test.com/">real web link</a>
second one to replace <a href="add3@test.com">add3@test.com</a>
所需的输出将是:
<a href="mailto:add1@test.com">add1@test.com</a> and
<a href="mailto:add2@test.com">add2@test.com</a> and
<a href="http://www.test.com/">real web link</a>
second one to replace <a href="mailto:add3@test.com">add3@test.com</a>
我尝试过的(在 PHP 中)和问题:
pattern: /href="(.+?)(@)(.+?)(<\/a> )/iU
replacement: href="mailto:$1$2$3$4
这是将 mailto: 添加到正确格式的 mailto: 并在最后两个链接上贪婪地行事。
谢谢你的帮助。我已经看了看,但是因为这是一个意外的内容问题,所以没有时间了。
如果您能节省我的时间并给出 SQL 表达式,那就更好了。