簡體   English   中英

使用GREP / RegEx查找和替換字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM