匹配除非存在“转义”字符

时间:2011-06-12 16:34:04

标签: ruby regex

我正在制作一个机器人,它为IRC上的[[Foo]]提供了wikilinks的完整链接。我想做的是在[匹配之后[[foo]]之前'[[foo]]','[[foo]]之前的'和'之前的[[foo]],而不是'[[foo]] foo]]','在`[[foo]]'等之前,'`'是程序中的一种“逃逸”字符。到目前为止,我得到了

/[^`]\[\[(.+)\]\]/

但是,这与“[[foo]]”不匹配。如果我加一个?在否定的角色类之后,它失败了它的目的,并且所有反向链接仍然匹配。

我怎么能这样做?

P.S。我想要一个正则表达式。

1 个答案:

答案 0 :(得分:1)

只需添加该行的开头,以替代“不是`的字符”:

/(?:[^`]|^)\[\[(.+)\]\]/.