[英]Using GREP / RegEx to find and replace string
因此,我正在嘗試將數據庫從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" />
我不會使用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達爾文)
不確定您使用的是哪個工具,但是請嘗試此正則表達式解決方案:搜索此:
<txp:upm_image\s+image_id="(\d+)"\s+form="([^"]*)"\s*\/>
並替換為:
<img src="$1.jpg" class="$2" />
請注意,這僅適用於具有與示例相同形式的txp標簽。 如果存在具有額外屬性的txp標簽或它們的順序不同,它將失敗。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.