我需要用 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 标签之间的文本部分?