红宝石搭配前面有一个角色

时间:2011-03-25 03:15:24

标签: ruby regex

我在这里阅读了很多帖子,用于使用Regexp在Ruby中匹配嵌套大括号。但是我不能适应我的情况而且我被卡住了。 Ruby 1.9书使用以下内容来匹配一组嵌套大括号

/\A(?<brace_expression>{([^{}]|\g<brace_expression>)*})\Z/x

我试图以三种方式改变这一点。 1.我想使用括号而不是大括号,2。我想要一个前面的字符(例如哈希符号)和3.我希望匹配字符串中的任何位置,而不仅仅是开头和结尾。这是我到目前为止所拥有的。

/(#(?<brace_expression>\(([^\(\)]|\g<brace_expression>)*\)))/x

任何获得正确表达的帮助都将受到赞赏。

1 个答案:

答案 0 :(得分:2)

使用正则表达式修饰符x可在正则表达式中启用注释。因此,正则表达式中的#被解释为注释字符,其余的正则表达式将被忽略。您需要转义#或删除x修饰符。

顺便说一句:没有必要逃避[]内的括号。