在文本字符串中查找逗号

时间:2015-03-16 09:47:26

标签: regex

我需要一个正则表达式来查找,它们出现在任何'字符串'。我试过#'([[^'],])*'#,但这没有用。什么是实现这一目标的最简单方法,因此我可以替换它们。感谢。

示例:

$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'

1 个答案:

答案 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})*[^']*$)是一个前瞻,确保逗号后跟偶数个单引号。