我必须在asd["]"]
里面匹配asd["]"] asd
我使用正则表达式:
/([a-z]+?(\[[^,\]]*?\]|\[\".*\"\]))/u
但它给了我asd["]
如果我在正则表达式中更改 OR 元素的顺序:
/([a-z]+?(\[\".*\"\]|\[[^,\]]*?\]))/u
我可以得到想要的结果,但我相信这样一些其他情况是行不通的。这是我的正则表达式的缩小版本。
我怎么能指向正则表达式来选择最长的匹配(贪婪)?
编辑:
使用正则表达式:
/{((\"a\")|([^b]*)})/u
我明白了
{c {"a"}
从
{b{c {"a"} b}
在这种情况下,正则表达式选择了比第一个更长的第二个 OR 语句。