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