ruby - 匹配 ruby 中的大括号,前面有一个字符

标签 ruby regex

我在这里阅读了很多关于使用 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/

相关文章:

ruby - 为什么我的简单 Ruby SQLite3 示例失败了?

ruby - #inject 和缓慢

ruby-on-rails - 检查数组中的元素是否在最后 5 秒内被创建

php - preg_match_all 空匹配

iphone - 如何使用 NSRegularExpression 加速 iPhone 正则表达式?

ruby-on-rails - '<module:ActiveRecord>':未初始化常量 CarrierWave::Mount (NameError)

ruby - Heroku 上的 Sinatra/Thin 未检测到 HTTP 流连接 (SSE) 客户端断开连接

python - 如何打印正则表达式 findall() 列表中的字母和数字?用于检测密码

javascript - JavaScript 正则表达式中的惰性匹配前面部分

python - 使用 re.split 拆分字符串时的额外空元素