Есть следующая строка: Code: "здесь пробелы должны остаться" и еще хуча пробелов etc. все должны быть удалены "опять фрагмент, в котором пробелы должны остаться" т.е. пробелы между 1 и 2, а так же 3 и 4 кавычками должны остаться, а вот между 2 и 3 должны быть удалены. Есть хоть какой-то способ сделать это чистыми регулярками? Заранее благодарен.
ну оно запонинает то что в крыглых скобках. так что что то типа /("[a-zA-Z0-9]*")/ должно запоминать все входяторы в третий агрумент, если передать третий аргумент в preg_match_all . ну а потом со второго наверное элемента ( 0 вроде как сама строка , 1 первое совпадение (могу и ошибатся) ) короче со второго все preg_replace на "" правда будет бага с тем что если будет "1","1" то удалит всетаки первую . надо какой то костыль писать на этот случай
http://rubular.com/r/qgZ4LbBRVt - если бы ты писал на Си то тебе бы возвращался массив смещений, для PHP думаю тебе подойдет strpos мол if strpos($str,'"')!==false $flag=!$flag; if $flag $str=preg_replace("\s",'',$str); 1. находишь первую кавычку - ставишь флаг например false; 2. находишь вторую кавычку - ставишь флаг true - значит надо заменить пробелы на пустоту - находишь следующую кавычку и substr() вырезаешь строку в ней убираешь пробелы... ставишь флаг false; а строку склеиваешь... $output.=substr()... ну надеюсь понял мысль
не не. первоге совпадение и будет та строка которая тебе нужна.не нужно ничего удалять. прсто бери первое совпадение