我在这里阅读了很多帖子,用于使用Regexp在Ruby中匹配嵌套大括号。但是我不能适应我的情况而且我被卡住了。 Ruby 1.9书使用以下内容来匹配一组嵌套大括号
/\A(?<brace_expression>{([^{}]|\g<brace_expression>)*})\Z/x
我试图以三种方式改变这一点。 1.我想使用括号而不是大括号,2。我想要一个前面的字符(例如哈希符号)和3.我希望匹配字符串中的任何位置,而不仅仅是开头和结尾。这是我到目前为止所拥有的。
/(#(?<brace_expression>\(([^\(\)]|\g<brace_expression>)*\)))/x
任何获得正确表达的帮助都将受到赞赏。
答案 0 :(得分:2)
使用正则表达式修饰符x
可在正则表达式中启用注释。因此,正则表达式中的#
被解释为注释字符,其余的正则表达式将被忽略。您需要转义#
或删除x
修饰符。
顺便说一句:没有必要逃避[]
内的括号。