我有以下字符串:
The {quick} brown fox {jumps {over {deep} the} {sfsdf0} lazy} dog {sdfsdf1 {sdfsdf2}
和 PHP 正则表达式:
/(?=\{((?:[^{}]+|\{(?1)\})+)\})/g
它产生以下匹配:
[5-10] `quick`
[23-60] `jumps {over {deep} the} {sfsdf} lazy`
[30-45] `over {deep} the`
[36-40] `deep`
[48-54] `sfsdf0`
[76-83] `sdfsdf2`
请参阅:http ://regex101.com/r/fD3iZ2 。
我正在尝试在 Ruby 中进行等效工作,但我遇到了问题(?1)
……导致undefined group option
错误:
str = "The {quick} brown fox {jumps {over {deep} the} {sfsdf} lazy} dog {sdfsdf {sdfsdf}"
str.scan /(?=\{((?:[^{}]+|\{(?1)\})+)\})/
SyntaxError: undefined group option: /(?=\{((?:[^{}]+|\{(?1)\})+)\})/
请参阅:http: //fiddle.re/n6w4n。
巧合的是,我在 Javascript 和 Python 中遇到了同样的错误。
我的正则表达式 foo 今天几乎用尽了,非常感谢任何帮助。