over 4 years ago

在 Ruby 1.9+ 中可以使用 \g<xxxx> 这个语法来表示递归的正则表达式,其中 xxxx 既可以是命令分组的分组名称也可以是普通分组的分组序号。例如,需要要匹配任意的加减乘除四则混合运算表达式(使用圆括号强调运算优先级),可以使用如下的正则表达式:

/^(\((\g<1>|[-+*\/\d])*\))$/
← Ruby 正则表达式的 o 选项 ack 中不能使用最小可能匹配长度为0的正则表达式 →
 
comments powered by Disqus