带点字符串的正则表达式,但出现异常



我不确定在一个正则表达式中是否可以做到这一点,但询问一下也无妨。

我创建了表达式:

/(?<variable>w+)((.(?<method>w+)((?<parameter>[^{}%]*)))|(.(?<subvariable>w+)))?/i

这有助于我";转换";数组的虚线字符串或对方法的调用:

core.settings => $core['settings'] 
core.set(param1, param2) => $core->set('param1', 'param2')

它工作得很好。但我不知道如何构建一个像这样工作的几个级别的表达式:

  1. 字符串:core.settings
group <variable> = core  
group <subvariable> = settings
  1. string:core.get(param(
group <variable> = core
group <method> = get
group <parameter> = param
  1. 字符串core.settings.time
group <variable> = core
group <subvariable> = settings.time
  1. string core.settings.time.set(param(
group <variable> = core
group <subvariable> = settings.time
group <method> = set
group <parameter> = param

有什么想法吗?这是否普遍可行?

您可以使用

^(?<variable>w+)(?:.(?<subvariable>w+(?:.w+)*))??(?:.(?<method>w+)((?<parameter>[^{}%]*)))?$

请参阅regex演示。

详细信息

  • ^-字符串的开头
  • CCD_ 2-组";变量":一个或多个单词字符
  • CCD_ 3-零次或一次出现CCD_;子变量";匹配一个或多个单词字符,后跟零次或多次.和一个或更多个单词字符
  • (?:.(?<method>w+)((?<parameter>[^{}%]*)))?-的可选序列
    • .-一个点
    • CCD_ 8-组";方法":一个或多个单词字符
    • (-一个(字符
    • CCD_ 11-组";参数":{}%以外的零个或多个字符
    • )-)字符
  • $—字符串结束

相关内容

  • 没有找到相关文章

最新更新