2016-03-22 15 views
1

MySQLデータベース(20k +レコード)の特定の列の検索と置換(実際には削除)を実行しようとしています。 CMS内のページコンテンツの本文テキスト)。MySQLの検索と置換(削除)phpMyAdminの正規表現

私は(下記の文字列は、レコードごとに一度だけ表示されます)検索と置換/各レコードの中から、次のテキストを削除し、そのまま他のHTMLのすべてを残しておく必要があります:

<h2>Location Map</h2><p><a href="[?]" onclick="window.open(this.href); return false;">[?]</a></p> 

「[?]可変内容と長さの文字列(英数字と記号の両方)であり、残りの静的コンテンツは上に示したものとまったく同じです。

これは非常にシンプルで愚かな質問ではありますが、私は正規表現の専門家ではありませんし、私が間違っていることを十分に理解することはできません。

私はphpMyAdminで検索と置換を実行するための正規表現が好きです。

事前に感謝します。

+0

後に来る:

$html = 'all that comes before <h2>Location Map</h2><p><a href="http://www.foofle.com" onclick="window.open(this.href); return false;">Foofle</a></p> all that comes after'; $replace = "(link=$1, text=$2)"; $result = preg_replace($regex, $replace, $html); echo $result; 

出力MariaDBには 'REGEXP_REPLACE'がありますが、MySQLではそうではありません。 –

答えて

1

PHPで検索/置換ステートメントは、次のようなものが考えられます。$ htmlのはあなたのデータベースから取得し、元のデータであり、$値に代わる

$regex = '#<h2>Location Map</h2><p><a href="(.*?)" onclick="window.open.*?>(.*?)</a></p>#'; 
$result = preg_replace($regex, $replace, $html); 

...一致した文字列のかわりに挿入します。例えば

、場合:すべてのことが
(リンク= http://www.foofle.com、テキスト= Foofle)
の前に来る

すべてのことが

関連する問題