我不确定是否可以在一个正则表达式中完成,但问一下也无妨。
我创建了表达式:
/(?<variable>\w+)((\.(?<method>\w+)\((?<parameter>[^{}%]*)\))|(\.(?<subvariable>\w+)))?/i
这有助于我将虚线字符串“转换”为数组或调用方法:
core.settings => $core['settings']
core.set(param1, param2) => $core->set('param1', 'param2')
它工作得很好。但我不知道如何构建一个像这样工作的多级表达式:
- 字符串:core.settings
group <variable> = core
group <subvariable> = settings
- 字符串:core.get(参数)
group <variable> = core
group <method> = get
group <parameter> = param
- 字符串 core.settings.time
group <variable> = core
group <subvariable> = settings.time
- 字符串 core.settings.time.set(param)
group <variable> = core
group <subvariable> = settings.time
group <method> = set
group <parameter> = param
有任何想法吗?以及一般情况下是否可行?