我有一个html文件,我需要带任何标记并将align ='left'放入其中。
所以给出了这一行:
<td><img alt="" src="oooh.html_files/px" style="width: 20px; height: 1px;"/></td>
我需要这样做:
<td align='left'><img alt="" src="oooh.html_files/px" style="width: 20px; height: 1px;"/></td>
如果它已经指定了对齐方式,我需要它来保留它。所以给出了这一行:
<tr><td width="50%"> </td><td align="center">
我需要这样做:
<tr><td width="50%" align='left'> </td><td align="center">
注意它将对齐放在第一个td中,但忽略第二个td,因为它已经指定了对齐。
这可以用正则表达式做Ruby吗?
我知道它不值得使用带有html的正则表达式..但基本上我只是在快速破解之后克服另一个库中的错误。希望这个错误很快得到修复,我不用担心它! :)
答案 0 :(得分:4)
#!/usr/bin/env ruby
require 'nokogiri'
doc = Nokogiri::XML('<tr><td width="50%"> </td><td align="center"></tr>')
(doc / '//td[not(@align)]').each {|td| td['align'] = 'left' }
puts doc
# <?xml version="1.0"?>
# <tr>
# <td width="50%" align="left"/>
# <td align="center"/>
# </tr>
看,妈!没有Regexp!
如果你不打扰Regexp,那么字面上是一个单行。
答案 1 :(得分:2)
经常给出答案:正则表达式无法解析HTML;使用HTML解析库,其中有很多。