我需要用 Ruby 正则表达式消化一些 bbcode。
我必须用match命令分隔元素并使用正则表达式/pattern/m来摆脱换行符。
例如,我在字符串中的 bbcode 是:
s="[b]Title[/b] \n Article text \n [b]references[/b]"
然后我用它match来分隔文本的各个部分,尤其是标题和引用部分,它们包含在[b]和之间[/b]:
t=s.match(/\[b\](.*)\[\/b\]/m)
我使用(..)语法来捕获正则表达式中的字符串,并使用\转义特殊字符[和]字符。/m就是去掉字符串中的换行符。
然后t[1]包含:
"Title[/b] \n Artucle text \n [b]references"
而不是"Title". 因为匹配不会在[/b]. 出于同样的原因,它是 nil而t[2]不是“References”。
如何分隔通常的 bbcode 标签之间的文本部分?