【发布时间】:2013-06-04 00:31:25
【问题描述】:
我需要用 Ruby 正则表达式消化一些 bbcode。
我必须使用 match 命令分隔元素,并使用正则表达式 /pattern/m 去除换行符。
比如我的bbcode在一个字符串中是:
s="[b]Title[/b] \n Article text \n [b]references[/b]"
然后我使用match 来分隔文本的各个部分,尤其是包含在[b] 和[/b] 之间的Title 和References 部分:
t=s.match(/\[b\](.*)\[\/b\]/m)
我使用(..) 语法来捕获正则表达式中的字符串,并使用\ 来转义特殊的[ 和] 字符。 /m 是去掉字符串中的换行符。
那么t[1] 包含:
"Title[/b] \n Artucle text \n [b]references"
而不是"Title"。因为匹配不会在[/b] 的第一次出现时停止。出于同样的原因,t[2] 是 nil 而不是“References”。
如何分隔通常的 bbcode 标签之间的文本部分?
【问题讨论】:
标签: ruby xml regex match bbcode