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