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

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

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

 

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

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

тема: Разбить строку
 
 автор: smertnik   (21.08.2007 в 15:15)   письмо автору
 
 

Здравствуйте.

Помогите с реализацией регулярного выражения для такого:

$per1 = "33499"
$per2= "текст текст текст текст текст текст текст текст"



33499                                             :   текст текст текст текст текст


;


33500                                             :   текст текст текст текст

;


33501                                             :   текст текст текст 
текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст

;

   
 
 автор: kasmanaft   (21.08.2007 в 18:09)   письмо автору
 
   для: smertnik   (21.08.2007 в 15:15)
 

А что это такое?

   
 
 автор: SHAman   (21.08.2007 в 21:42)   письмо автору
 
   для: smertnik   (21.08.2007 в 15:15)
 

Вероятно, нужно разбить этот текст так, чтобы получить пары число - текст. Так? Если да, то что-то в этом духе:

/(\d+)\s*:\s*(\w+)/

   
 
 автор: cheops   (22.08.2007 в 00:49)   письмо автору
 
   для: smertnik   (21.08.2007 в 15:15)
 

Хм... что-то действительно не очень понятно, что требуется...

   
 
 автор: smertnik   (22.08.2007 в 08:32)   письмо автору
 
   для: cheops   (22.08.2007 в 00:49)
 

Проблема такая, есть файл, который содержит около 100т. таких записей, записи разделяются между собой ;, запись состоит из 2-х частей, разделяемых :, надо поместить все что в левой части( цифры) в 1 переменную, все что с права в другую. Проблема в том что запись такого вида ( 2222 : текст ; ) считывается нормально, а такого нет
( 2222 : текст текст
текст текст
;)

   
 
 автор: Faraon   (22.08.2007 в 08:50)   письмо автору
 
   для: smertnik   (22.08.2007 в 08:32)
 

Можно попробовать не прибегать к регуляркам, а explode'ом
Что типа такого

<?php
$s
="33499                                             :   текст текст текст текст текст
;
33500                                             :   текст текст текст текст
;
33501                                             :   текст текст текст
текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст текст
;
"
;
$d=explode(";",$s);
for(
$i=0;$i<count($d)-1;$i++){
$f=explode(":",$d[$i]);

print 
'$per1='.$f[0].' $per2='.$f[1].'<br>';

}
?>

   
Rambler's Top100
вверх

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