正则表达式将标签(类似于BBCode)转换为HTML

时间:2013-05-01 08:35:11

标签: ruby regex bbcode gsub

我有以下格式的嵌套[quote]标记的字符串集:

[quote name="John"]Some text. [quote name="Piter"]Inner quote.[/quote][/quote]

如你所见,它不像普通的BBCode。因此我无法在Ruby中为gsub找到合适的正则表达式,将它们转换为这样的字符串:

<blockquote>
  <p>Some text. 

    <blockquote>
      <p>Inner quote.</p>
      <small>Piter</small>
    </blockquote>
  </p>
  <small>John</small>
</blockquote>

任何人都可以帮我这样的正则表达式吗?

1 个答案:

答案 0 :(得分:0)

我很确定正则表达式从根本上无法应对嵌套。你可以做的是让它做一个最小的匹配(例如只有内部引用级别),替换它们,然后只要你有更多匹配就重复。一旦你更换了一个级别,它就只是HTML,所以不再匹配正则表达式了。