【问题标题】:Replace a certain string between two markers in rails?在rails中的两个标记之间替换某个字符串?
【发布时间】:2015-03-23 04:46:26
【问题描述】:

我想在插入数据库之前将“\n”替换为代码标记之间的“br”标记(在我的情况下是```),例如:

```
echo "Hello";
echo "World!";
```

first line.
second line.

会变成:

```<br/>echo "Hello";<br/>echo "World!";<br/>```
first line .
second line . 

【问题讨论】:

  • 你有什么问题?
  • 我希望代码块内的所有换行符 (\n) 都成为 br 标签。
  • @Lofaif 三个反引号总是成对的吗?
  • @Lofaif 如果您想将 ``` 中的所有 \n 替换为
    那么为什么在前三个反引号之后没有 br 以及为什么将 &lt;br/&gt; 放置为在第二个```动作之前存在的换行符?对我来说似乎很奇怪。
  • 这只是一个错误对不起,我只是想在markdown编辑器中处理代码..而代码标记之外的语法使用p标签来分隔文本,我在编写代码时遇到了这个问题!

标签: ruby-on-rails ruby regex gsub


【解决方案1】:
str = %q{
```
echo "Hello";
echo "World!";
```

first line.
second line.
}

pattern = %r{
  `{3}
  .*? 
  `{3}
}xm

str.gsub!(pattern) do |match|
  match.gsub!("\n", '<br/>')
end

puts str

--output:--

```<br/>echo "Hello";<br/>echo "World!";<br/>```

first line.
second line.

【讨论】:

    猜你喜欢
    • 2018-08-25
    • 2011-11-11
    • 1970-01-01
    • 2013-11-26
    • 2011-04-22
    • 1970-01-01
    • 2022-11-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多