問題:作成者がCMSに誤って電子メールアドレスを追加しました-「mailto:」テキストが欠落しています。
保存されているMySQLコンテンツテーブルで検索と置換を行うには、可能であれば正規表現が必要です。
私が対処する必要があるケースは次のとおりです。
- 「mailto:」はありません
- 'mailto:'はすでに含まれています(正しい)
- 電子メールではなくWebアドレス-置換なし
- 複数の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:に追加し、最後の2つのリンクに対して貪欲に行動します。
助けてくれてありがとう。調べてみましたが、予期しないコンテンツの問題であったため、時間が不足しています。
あなたが私に時間を節約してSQL式を与えることができれば、それはさらに良いでしょう。