Как манипулировать моей строкой с помощью регулярных выражений в PHP? - PullRequest
0 голосов
/ 05 января 2012

У меня есть строка, как показано ниже

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

Я хочу, чтобы ею манипулировали следующим образом

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

Я пытаюсь получить в выводе все единицы в сочетании с ИЛИмежду ними.Здесь юнит находится в одиночном слове, когда его нет в двойных кавычках, или в полной строке, которая попадает в одинарные кавычки.

Я хотел попробовать с preg_replace.Но я не могу найти правильное регулярное выражение для соответствия.Пожалуйста, помогите!

Ответы [ 2 ]

3 голосов
/ 05 января 2012
$result = preg_replace('/ (?=(?:[^"]*"[^"]*")*[^"]*$)/', ' OR ', $subject);

работает, если в вашей строке нет экранированных кавычек.Он заменяет пробелы, только если за ними следует четное число двойных кавычек.

0 голосов
/ 05 января 2012

Любая причина, почему preg_replace, а не простая

$output = '"'.implode('" OR "',str_getcsv($str,' ')).'"';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...