【问题标题】:How to split text on two new lines with ruby如何使用 ruby​​ 在两个新行上拆分文本
【发布时间】:2019-07-31 03:06:59
【问题描述】:

在我的 RoR 应用程序中,我有一个文本区域,我想将其内容分成单独的段落。文本格式如下:

Berlin.
Rome.
London.

Paris.
Warsaw.
New York City.

显示时,我希望将其格式化为以下段落:

<p>Berlin. Rome. London.</p>
<p>Paris. Warsaw. New York City.</p>

如何做到这一点?我想我需要使用 split 方法但是如何定位两个新行?

【问题讨论】:

标签: ruby-on-rails ruby


【解决方案1】:

当您使用text.split("\n\n") 拆分文本字段值时,您将在数组中获得拆分值,即输出如下 ["Berlin.\nRome.\nLondon.", "Paris.\nWarsaw.\nNew York City."] .按以下方式打印值

'<p>Berlin. Rome. London.</p>
<p>Paris. Warsaw. New York City.</p>'

需要从数组元素中删除"\n",并使用gsub ruby​​方法添加" "

<% text.split("\n\n").each do |paragraph| %>
 <p>
    <%= paragraph.gsub("\n"," ") %>
  </p>
<% end %>

您也可以参考How can I remove the string "\n" from within a Ruby string?

【讨论】:

  • 这似乎是一个更好的选择。
【解决方案2】:

您可以将其拆分为双换行符,然后在视图中换行&lt;p&gt;(ERB 示例)

<% text.split("\n\n").each do |paragraph| %>
  <p>
    <%= paragraph %>
  </p>
<% end %>

【讨论】:

  • 谢谢,但您的代码出于某种原因在一个段落中显示文本,而不是两个。
  • 现在试试,我已将模式从 '\n\n' 固定为 "\n\n" 以匹配换行符,而不是反斜杠 n
  • 对不起,我还是只看到一段。也许这与我的 Ruby 或 RoR 版本有关?
  • 尝试在控制台中获取这些数据并使用p text 将其打印出来(它将显示所有特殊字符)。同时打印text.split("\n\n")的结果
  • 我有 .split("\r\n\r\n") 谢谢你的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-15
  • 2017-09-09
  • 2014-11-11
  • 1970-01-01
相关资源
最近更新 更多