我在这里阅读了很多关于使用 Regexp 在 Ruby 中匹配嵌套大括号的帖子。但是我无法适应我的情况,我被困住了。 Ruby 1.9 这本书使用下面的来匹配一组嵌套的大括号
/\A(?<brace_expression>{([^{}]|\g<brace_expression>)*})\Z/x
我试图通过三种方式改变这一点。 1.我想用圆括号代替大括号,2.我想在前面加一个字符(比如哈希符号),3.我想匹配字符串的任何地方,而不仅仅是开头和结尾。这是我目前所拥有的。
/(#(?<brace_expression>\(([^\(\)]|\g<brace_expression>)*\)))/x
如能提供正确表达方式的任何帮助,我们将不胜感激。
最佳答案
使用正则表达式修饰符 x
在正则表达式中启用注释。因此,正则表达式中的 #
被解释为注释字符,正则表达式的其余部分将被忽略。您需要转义 #
或删除 x
修饰符。
顺便说一句:没有必要对 []
中的括号进行转义。
关于ruby - 匹配 ruby 中的大括号,前面有一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5428173/