客户在说明中有大约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>
是否有正则表达式用于删除您的价格行?我们还希望删除零售价格行?
非常感谢任何帮助!
答案 0 :(得分: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解析器。我们称之为快速而肮脏的方法。
答案 1 :(得分:3)
I strongly recommend you use an HTML parser for this。话虽如此,以下很可能会做你想要的:
/Your Price:.*?\$(\d+(?:,\d+)?(?:\.\d+)?)/
我不知道MySQL正则表达式语法,因此您可能需要仔细检查它。
答案 2 :(得分:1)
你真的不想用正则表达式解析或修改HTML ...只需使用为它制作的东西,例如phpQuery:http://code.google.com/p/phpquery/