使用preg_replace查找和替换未被大括号包围的逗号并替换为由大括号包围的逗号的正则表达式是什么



可能的重复项:
正则表达式以匹配逗号而不是分组符号之间的逗

使用

preg_replace查找和替换两侧未被大括号包围的逗号的正则表达式是什么?

例:

$subject = "blah.blah,{blah.blah},blah.blah";
$result = "{blah.blah},{blah.blah},{blah.blah}";

避免此和其他不需要的变体:

$result = "{blah.blah},{{blah.blah}},{blah.blah}";
preg_replace("/(?<=^|,)([^{},]+)(?=$|,)/", '{$1}', "blah.blah,{blah.blah},blah.blah");

答案有效,但有一个更好的正则表达式,因为后面看和看对机器来说很昂贵:

preg_replace('/(^|,)([^{},]+)($|,)/', '$1{$2}$3', 'blah.blah,{blah.blah},blah.blah');

最新更新