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