我正在使用Nokogiri。
我有以下代码用标准代码替换撇号。
def replace_apostrophe(nokogiri_xml_doc)
nokogiri_xml_doc.xpath('//text()').each {|node| node.content = node.content.gsub(/\b'|’|‛|⸂|⸄|⸌|⸜\b/, "'")}
nokogiri_xml_doc
end
我想将方法缩减到一行,但我无法弄清楚如何实现这一目标。
有什么想法吗?
答案 0 :(得分:3)
我想将方法缩减到一行,但我无法弄清楚如何实现这一目标。
您可以随时用分号或关键字替换换行符并编写任何代码,无论一行有多复杂:
def replace_apostrophe(nokogiri_xml_doc) nokogiri_xml_doc.xpath('//text()').each {|node| node.content = node.content.gsub(/\b'|’|‛|⸂|⸄|⸌|⸜\b/, "'")}; nokogiri_xml_doc end
但是,这真的更好吗?
答案 1 :(得分:1)
说实话,我宁愿把它留作两条线;将它压缩成一行可能是"聪明",但它使代码更难阅读。
但是,如果你真的想让它成为单行,你可以使用Object#tap
:
def replace_apostrophe(nokogiri_xml_doc)
nokogiri_xml_doc.tap { |doc| doc.xpath('//text()').each { |node| node.content = node.content.gsub(/\b'|’|‛|⸂|⸄|⸌|⸜\b/, "'") } }
end
请参阅评论以获取有用信息。