2011-04-04 77 views
2

描述中,一個客戶擁有約7,000個產品,其中包含「Your Price:$ ...」,價格已輸入(沒有現有通配符)。PHP正則表達式幫助

這裏是一個描述的例子:

<table cellpadding="5" border="0" width="100%"><tbody><tr><td><strong>Part #: </strong></td><td>FIV000-2100</td></tr><tr><td><strong>Retail Price: </strong></td><td>$26.39</td></tr><tr><td class="price"><strong>Your Price: </strong></td><td class="price">$23.75</td></tr><tr><td align="center" colspan="2"/></tr></tbody></table>

是否有一個正則表達式用來只是刪除您的價格行?我們還想要刪除零售價格行嗎?

任何幫助將不勝感激!

回答

3

你可以做這樣的事情(提供$str是HTML字符串):

$pattern = "/<tr><td class=\"price\"><strong>Your Price: <\/strong><\/td><td class=\"price\">\\$[0-9.]+<\/td><\/tr>/"; 
$str = preg_replace($pattern, "", $str); 

空字符串將與任何替換它,從而消除它。

編輯:

逃脫一些東西,使其工作。我也敦促你使用HTML解析器。我們稱之爲快速和骯髒的方法。

+0

+1這人會非常有效,如果所有的記錄進行格式化工作相同,但你需要在模式中轉義''''和所有'/'字符。 (或更好的是,選擇一個不同的正則表達式分隔符)。您應該爲char類添加一個逗號(在$ 1,234.56'的情況下) – ridgerunner 2011-04-04 19:29:46

+0

您的第一個''上有一個未轉義的正斜槓。 – 2011-04-04 20:42:07

+0

@Justin E. Morgan謝謝!固定。 – 2011-04-04 20:49:27