如何在php中使用正则表达式操纵我的字符串?

时间:2012-01-05 10:37:47

标签: php regex string

我有一个字符串,如下所示

$str = '"Mark Zuckerberg" facebook "A social utility connecting friends" profile';

我希望按照以下方式对其进行操作

$output = '"Mark Zuckerberg" OR facebook OR "A social utility connecting friends" OR profile';

我在输出中尝试的是所有单元与OR之间的组合。当一个单位不是双引号或者单引号内的完整字符串时,单位就会丢失一个单词。

我想尝试使用preg_replace。但我无法得到正确的正则表达式来匹配。请帮助!

2 个答案:

答案 0 :(得分:3)

$result = preg_replace('/ (?=(?:[^"]*"[^"]*")*[^"]*$)/', ' OR ', $subject);
如果您的字符串中没有任何转义引号,则

有效。只有当后跟偶数个双引号时,它才会替换空格。

答案 1 :(得分:0)

为什么preg_replace而不是简单的

$output = '"'.implode('" OR "',str_getcsv($str,' ')).'"';