我有正则表达式\[\[(.+)\]\]
。我用它来捕获像hey I [[am]] so awesome
这样的wikilink(捕获am
)。我如何修改此设置,以便hey I [[am]] more [[awesome]] than you think
分别同时生成am
和awesome
?我的尝试产生了像am]] more [[awesome
这样的单个字符串。一点上下文:我用这个来编写一个Ruby IRC bot。
P.S。 Wikilinks也可以是多字的,如hey I am much [[more awesome]] than you [[probably think]].
答案 0 :(得分:10)
答案 1 :(得分:5)
您可以使用非贪婪版本,例如\[\[(.+?)\]\]
(请注意问号)。
答案 2 :(得分:4)
字符串的scan运算符应该能够捕获正在查找的正则表达式的所有内容/\[\[([^\]])+\]\]/
[\]]+
是关键字。这将匹配到第一个]
并停止。
string.scan( /\[\[([^\]])+\]\]/ );