【发布时间】:2016-04-22 15:03:09
【问题描述】:
案例如下:
我有这个字符串变体:
['var1' => $var1, 'var2' => $obj->var1['asd']]
[ 'var1' => $var1, 'var2' => $obj->var1 ]
['var1' => $var1, 'var2' => $var2]
我需要匹配$var、$obj->var1['asd'] 和$obj->var1。
我走了这么远:
(\$[^,\s\]]+]?)
它几乎可以工作,但最后一种情况仍然没有。在此处查看实际操作:regex101.com/r/cI0yP0/3
更新:
感谢您的所有回答。它们都工作得很好。
现在正如乔指出的那样,可能还有其他情况,例如以下。
['var' => $obj->var1->var2[2]->var3['test']->var4]
['var1' => $obj->var1[$obj2->var1['one']]]
['var2' => $obj[3]['var']]
['var3' => $obj->method()]
【问题讨论】:
-
@Aley:您的演示显示
$obj->var1匹配 -
@anubhava
$var2]是问题所在。查看最后一个字符。 -
好的,你用的是什么正则表达式?
-
我这里用的是PHP,所以是PCRE