我需要一个正则表达式来查找,它们出现在任何'字符串'。我试过#'([[^'],])*'#
,但这没有用。什么是实现这一目标的最简单方法,因此我可以替换它们。感谢。
示例:
$str = "(1,2132,'hello world 1, (this is to force it) & another, comma')";
$value_str = preg_replace("#'([[^'],])*'#",'C_1',$str);
预期产出:
'hello world 1C_1 (this is to force it) & anotherC_1 comma'
答案 0 :(得分:2)
您可以使用这个基于前瞻性的正则表达式:
$str = "(1,2132,'hello world 1, (this is to force it) & another, comma')";
$value_str = preg_replace("#(?!(([^']*'){2})*[^']*$),#", 'C_1', $str);
//=> (1,2132,'hello world 1C_1 (this is to force it) & anotherC_1 comma')
(?!(([^']*'){2})*[^']*$)
是一个前瞻,确保逗号不后跟偶数个单引号。