0

そのため、データベースを Textpattern CMS からより一般的なものに移行しようとしています。記事内には、画像を取り込む textpattern 固有のコマンドがいくつかあります。これらを一般的な HTML 画像リンクに変換したいと考えています。現時点では、SQL ファイルでは次のようになっています。

<txp:upm_image image_id="4" form="dose" />

これらを次のようなものに変えたい:

<img src="4.jpg" class="dose" />

私は TextWrangler でいくつかの正規表現を行って運が良かったのですが、困惑しています。これらの画像パスをすべて見つけて置き換える方法についてのアイデアはありますか?

編集:将来の参考のために、PHPで出力するために最終的に行ったことは次のとおりです。

$body = $post['Body_html'];
$pattern = '/txp:upm_image image_id="([0-9]+)" form="([^"]*)"/i';
$replacement = 'img src="/images/$1.jpg" class="$2"';
$body = preg_replace($pattern, $replacement, $body);
// outputed <img src="/images/59.jpg" class="dose" />
4

2 に答える 2

1

grep は使いません。それはあなたが望むセドです

$ echo '<txp:upm_image image_id="4" form="dose" />' | sed -e 's/^.*image_id="\([[:digit:]]*\)".*form="\([[:alpha:]]*\)".*/<img src="\1.jpg" class="\2" \/>/' 
<img src="4.jpg" class="dose" /> 
$

クラスに英数字が含まれる場合は、[[:alnum:]] を使用します。

(macos darwinで動作)

于 2011-03-25T17:00:14.250 に答える
0

使用しているツールがわからない場合は、次の正規表現ソリューションを試してください: これを検索してください:

<txp:upm_image\s+image_id="(\d+)"\s+form="([^"]*)"\s*\/>

そしてこれに置き換えます:

<img src="$1.jpg" class="$2" />

これは、例と同じ形式の txp タグでのみ機能することに注意してください。余分な属性を持つ txp タグがある場合、または順序が異なる場合は失敗します。

于 2011-03-25T16:53:18.267 に答える