ruby - 将对齐方式放入 <td> 标记的正则表达式

标签 ruby regex

我有一个 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%">&nbsp;</td><td align="center">

我需要它来做:

  <tr><td width="50%" align='left'>&nbsp;</td><td align="center">

请注意,它将对齐方式放入第一个 td 中,但忽略第二个 td,因为它已经指定了对齐方式。

Ruby 可以用正则表达式实现吗?

我知道它并不真正值得在 html 中使用正则表达式..但基本上我只是在快速破解以克服另一个库中的错误。希望这个错误很快就会被修复,我就不用担心了! :)

最佳答案

#!/usr/bin/env ruby
require 'nokogiri'

doc = Nokogiri::XML('<tr><td width="50%">&nbsp;</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>

看,妈妈!没有正则表达式!

如果您不关心正则表达式的话,这实际上只是一句台词。

关于ruby - 将对齐方式放入 <td> 标记的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2256472/

相关文章:

ruby - 使用 rvm 和 ruby​​ 2.0.0 时 compass 编码错误

javascript - Jquery 替换所有文本语法正则表达式中的变量

c# - 如何从 C# 中的字符串中删除双 html <strong> 标记

javascript - 正则表达式 - 忽略引号/HTML(5) 属性过滤之间的文本

ruby - 缺少要链接的主机!请提供 :host parameter, set default_url_options[:host]

ruby-on-rails - 调用命名范围的自定义 ActiveRecord 查找器?

ruby-on-rails - 设计销毁 session 不会销毁 session ?

python - 将隐含乘法 (*) 添加到 Python 字符串的最佳方法?

字母数字、逗号、连字符、句点的正则表达式 - 地址验证

mysql - Ruby on Rails : "SELECT" MySQL command