簡體   English   中英

PHP正則表達式幫助

[英]PHP Regular Expression Help

一個客戶有〜7,000個產品,描述中帶有“您的價格:$ ...”,並輸入了價格(不存在通配符)。

這是一個描述示例:

<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>

是否有正則表達式用於刪除“您的價格”行? 我們還想刪除“零售價”行嗎?

任何幫助將不勝感激!

您可以執行以下操作(假設$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解析器。 我們稱其為快速而骯臟的方法。

我強烈建議您為此使用HTML解析器 話雖如此,以下內容很可能會滿足您的要求:

/Your Price:.*?\$(\d+(?:,\d+)?(?:\.\d+)?)/

我不知道MySQL regex語法,因此您可能需要仔細檢查。

您確實不希望使用正則表達式解析或修改HTML ...只需使用為此編寫的內容,例如phpQuery: http : //code.google.com/p/phpquery/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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