0

可能重复:
正则表达式匹配逗号不在分组符号之间

使用 preg_replace 查找和替换两边没有被大括号包围的逗号的正则表达式是什么?

例子:

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

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

避免这种和其他不需要的变化:

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

2 回答 2

1
preg_replace("/(?<=^|,)([^{},]+)(?=$|,)/", '{$1}', "blah.blah,{blah.blah},blah.blah");
于 2012-11-16T22:59:35.557 回答
0

答案有效,但有一个更好的正则表达式,因为后视和后视对机器来说太贵了:

preg_replace('/(^|,)([^{},]+)($|,)/', '$1{$2}$3', 'blah.blah,{blah.blah},blah.blah');
于 2012-11-16T23:18:58.193 回答