我在匹配有时存在有时不存在的 [*] 时遇到问题。有人有建议吗?
$name = 'hello $this->row[today1][] dfh fgh df $this->row[test1] ,how good $this->row[test2][] is $this->row[today2][*] is monday';
echo $name."\n";
preg_match_all( '/\$this->row[.*?][*]/', $name, $match );
var_dump( $match );
输出:你好 $this->row[test] ,$this->row[test2] 有多好 $this->row[today][*] 是星期一
array (
0 =>
array (
0 => '$this->row[today1][*]',
1 => '$this->row[test1] ,how good $this->row[test2][*]',
2 => '$this->row[today2][*]',
),
)
现在 [0][1] 匹配需要太多,因为它匹配到下一个 '[]' 而不是在 '$this->row[test]' 结束。我猜 [*]/ 添加了一个通配符。在匹配到 [] 之前,不知何故需要检查下一个字符是否是 [。任何人?
谢谢