我尝试了各种组合,但在确定正确的正则表达式模式时没有用。
基本上我想捕捉以下示例的模式:
依旧......
我想从中捕获变量,function1,param1,function2,param2
到目前为止,我的下面的正则表达式完全不起作用
\{\{([^{}.]+)(\.([^{}]+)\{([^{}]+)\})*\}\}
如果我尝试在示例3中应用上述模式,则会出现以下群组
我期待如下所示,
PS:您无需在http://regexr.com/3e4st
编写代码即可查看答案 0 :(得分:1)
好的,所以你的东西不起作用的原因是因为你基本上只捕获一般事物的一个实例,这意味着每个捕获组只能返回你想要的一个实例。因此,所需要的是全局变量或您使用的任何语言的等效变量。
答案 1 :(得分:1)
正则表达式匹配中的组数是固定的。请参阅older post of mine并提供更多说明。在你的情况下,这个数字是4。
当一个组重复匹配时,通常只能访问字符串中最后一个匹配项的值。这就是您对问题的看法:function2
,param2
。
某些正则表达式引擎允许访问以前的组捕获(例如the one in .NET)。大多数人没有。是否可以轻松解决您的问题或者不严格取决于您的正则表达式引擎。