gpt4 book ai didi

regex - 如何将 $ 开头的变量与正则表达式匹配?

转载 作者:行者123 更新时间:2023-12-05 00:19:00 24 4
gpt4 key购买 nike

案例如下:

我有这个字符串变体:

['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()]

最佳答案

你带来了一个不错的正则表达式练习。您可以在下面找到 3 种不同的正则表达式来解决您的问题。

多组交替

不确定您是否喜欢使用这样的正则表达式:

(\$.*?),|(\$.*?\])\]|(\$.*?)\]

Working demo

Regular expression visualization

单组交替

但是,在正则表达式之上进行了改进,并且可以提出以下建议:
(\$.*?\]?)(?:,|\])

Regular expression visualization

Working demo

具有字符类的单个组

并添加一个字符类以获得更好的性能。我认为这是最好的。
(\$.*?\]?)[,\]]

Regular expression visualization

Working demo

关于regex - 如何将 $ 开头的变量与正则表达式匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36797296/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com