**>>请参阅底部附近的更新**
我不得不处理大量格式不正确的导入HTML代码。
我有大约200个相似(但不完全相同)的代码实例,每个实例都包含一组特定的<img>
标签。在某些情况下,<img>
标记从一个标记到下一个标记,其间没有换行符。在其他情况下,代码中存在换行符,这会导致将<br>
标记插入发送到浏览器的最终代码中。
一旦我说明我的意思,这将更有意义:
示例#1:<img>
标签之间没有中断......
示例#2:<table align="center" border="0px"> <tbody><tr> <td> <img src="http://simplicitywebsitedesign.com/iOutlet/images/buttons/CustomerSatisfaction.png" alt="100% Customer Satisfaction" height="60" align="middle" width="140"> <img src="http://simplicitywebsitedesign.com/iOutlet/images/buttons/PaypalVerified.png" alt="Paypal Verified" height="60" align="middle" width="140"> <img src="http://simplicitywebsitedesign.com/iOutlet/images/buttons/FastDelivery.png" alt="Fast Delivery" height="60" align="middle" width="140"> <img src="http://simplicitywebsitedesign.com/iOutlet/images/buttons/Recycled.png" alt="100% Recyled Pre-owned Products" height="60" align="middle" width="140"> <img src="http://simplicitywebsitedesign.com/iOutlet/images/buttons/TopSellerRated.png" alt="Top Seller Rated" height="60" align="middle" width="140"> <img src="http://simplicitywebsitedesign.com/iOutlet/images/buttons/PhoneSupport.png" alt="Phone Support" height="60" align="middle" width="140"> </td> </tr> </tbody></table>
代码之间有中断...
<img>
如上所述,由于我不知道的原因,Wordpress网站上当代码示例#2被解析到浏览器时,使用此代码会抛出<table align="center" border="0px">
<tbody><tr>
<td>
<img src="http://simplicitywebsitedesign.com/iOutlet/images/buttons/CustomerSatisfaction.png" alt="100% Customer Satisfaction" align="middle" height="60" width="140">
<img src="http://simplicitywebsitedesign.com/iOutlet/images/buttons/PaypalVerified.png" alt="Paypal Verified" align="middle" height="60" width="140">
<img src="http://simplicitywebsitedesign.com/iOutlet/images/buttons/FastDelivery.png" alt="Fast Delivery" align="middle" height="60" width="140">
<img src="http://simplicitywebsitedesign.com/iOutlet/images/buttons/Recycled.png" alt="100% Recyled Pre-owned Products" align="middle" height="60" width="140">
<img src="http://simplicitywebsitedesign.com/iOutlet/images/buttons/TopSellerRated.png" alt="Top Seller Rated" align="middle" height="60" width="140">
<img src="http://simplicitywebsitedesign.com/iOutlet/images/buttons/PhoneSupport.png" alt="Phone Support" align="middle" height="60" width="140">
</td>
</tr>
</tbody></table>
标记。
这导致图像显示如下(在Firefox上):
代码示例#1显示链接:
我认为解决这个问题的最佳方法是通过MySQL在数据库上进行搜索/替换,使用可识别代码实例的正则表达式# 2,使它像代码示例#1。换句话说,换行符将从相关<br>
标记之间删除。
两个问题:
1)这实际上是最好的方法吗?这或者是否有更好的方法?
2)如果这是一种有效且合适的方法,你会建议一个合适的正则表达式。
(问题2) ,我不确定是什么建议作为正确的正则表达式引擎。这个正则表达式将在MySQL中解析,使用Mac应用程序Sequel Pro.app(http://www.sequelpro.com/)。
我的猜测是我们需要:
1)查找<img>
的实例
2)查找{{1}的实例}(软换行符)<table...> ... </table>
在上面#1标识的代码中
3)删除(软换行符)
还有一个</img>
集在将被搜索的代码中。该实例中只有一个<img ...>
。 <table> ... </table>
<img>
个实例,需要考虑评论有人建议我使用<img>
CSS <table> ... </table>
属性,并将其应用于表格行。我做到了,效果很好。我有点担心旧浏览器的兼容性,因为我收集它是一个相对较新的CSS添加。
但我仍然需要进行搜索/替换以找到正确的{{ 1}}在HTML中。
在大多数HTML实例中,有两个flex
个实例。因此,我怀疑正则表达式需要对display
之类的内容进行否定前瞻性检查,该<table>
存在于<table> ... </table>
实例中我不想要修改。然后用/stars/
替换<table>
谢谢。
Jonathan
P.S。我知道有一个LOT of contention围绕正则表达式是否是一种有效的HTML更改方式。由于这是一组相对固定且已知的HTML,我怀疑它会好起来的。但我也对其他建议持开放态度。