Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Разбить строку по неэкранированным символам.
 
 автор: Kroshemin   (06.04.2007 в 18:58)   письмо автору
 
 

Подскажите пожалуйста как разбить строку по всем запятым перед которыми не стоит обратный слеш.

   
 
 автор: Poison   (06.04.2007 в 19:05)   письмо автору
 
   для: Kroshemin   (06.04.2007 в 18:58)
 

Хм. А зачем у вас вообще перед запятыми стоит слеш?

   
 
 автор: Kroshemin   (06.04.2007 в 19:15)   письмо автору
 
   для: Poison   (06.04.2007 в 19:05)
 

Не хочу вдаваться в подробности, но в общем мне нужно принять несколько символов за специальные и соответственно экранировать все их строчные применения. Запятая просто пример.

   
 
 автор: Саня   (06.04.2007 в 19:38)   письмо автору
 
   для: Kroshemin   (06.04.2007 в 18:58)
 

<?php
$str 
'строка ,с \,экранированными\, запятыми, разберём';

function 
quote(&$str) { $str str_replace("&#44;"'\,'$str); }
$str str_replace('\,'"&#44;"$str);
$expld explode(','$str);
array_walk($expld'quote');

print_r($expld);

   
 
 автор: Kroshemin   (06.04.2007 в 19:43)   письмо автору
 
   для: Саня   (06.04.2007 в 19:38)
 

Всё гениальное просто, однако.
Громадное спасибо!
Виноват, обычно не задаю дурных вопросов — затмение какое-то было.

   
 
 автор: Kroshemin   (06.04.2007 в 19:57)   письмо автору
 
   для: Саня   (06.04.2007 в 19:38)
 

Интересно а нет ли регулярного выражения которое соответствовало бы запятой и проверяло нет ли перед ней слеша.

   
 
 автор: cheops   (07.04.2007 в 13:00)   письмо автору
 
   для: Kroshemin   (06.04.2007 в 19:57)
 

Есть
<?php   
  $str 
'строка ,с \,экранированными\, запятыми, разберём';
  
$pattern '|(?<!\\\),|i';
  
$arr preg_split($pattern$str);
  echo 
"<pre>";
  
print_r($arr);
  echo 
"</pre>";
?> 

Три обратных слеша - это для windows, в UNIX нужно будет два оставить...

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования