使用 Ruby,我想获取一个 Regexp 对象(或代表有效正则表达式的字符串;您的选择)并将其标记化,以便我可以操作某些部分。
具体来说,我想采用这样的正则表达式/字符串:
regex = /var (\w+) = '([^']+)';/
parts = ["foo","bar"]
并创建一个替换字符串,用数组中的文字替换每个捕获:
"var foo = 'bar';"
一种简单的基于正则表达式的解析正则表达式的方法,例如:
i = -1
result = regex.source.gsub(/\([^)]+\)/){ parts[i+=1] }
…对于嵌套捕获组、非捕获组或在字符类中带有括号的正则表达式等内容将失败。因此,我希望将正则表达式正确地分解为语义有效的部分。
是否有可用于 Ruby 的现有正则表达式解析器?是否有一个(恐怖的)已知正则表达式可以完全匹配正则表达式?有没有我没找到的宝石?
这个问题的动机是希望为这个问题找到一个简洁明了的答案。