Привет всем. Народ имеется такой текст:
Леноид Петров - 22:08:1993; 1 курс;
Иван Васильев - 16:06:1986; 2 курс;
Василий Иваненко - 31:12:1993; 3 курс;
и таких строчек 100500.
Как вы успели заметиь щас текст имеет такую структуру:
Имя_Фамиля - Дата.Рождения;курс;
Так вот задача заключается в том поменять вид на такой:
Курс - ИФ: ДР;
Такая регулярка: "/(.+) - (\d+)
\d+)
\d{3,}); (.+);/siuU" с заменой на "$5 - $1: $2.$3.$4;" дает почти нужный результат, НО получается следующое:
1 курс - Леноид Петров: 22.08.1993;2 курс -
Иван Васильев: 16.06.1986;3 курс -
Василий Иваненко: 31.12.1993;
НЕТ переносов строки!
Код скрипта такой:
$f=file_get_contents('000.txt');
If(!isset($f)){echo 'Такого файла нет!';}
else{
$reg=preg_replace($cto,$nacto,$f);
If(isset($reg)){echo'Регулярка выполнена';}else{echo'Регулярка не выполнена';}
$z=file_put_contents('00_0.txt',$reg);
Подскажите как сделать так чтоб конечный текст был как начальный? Т.е. с переносом строки?
$data = 'Леноид Петров - 22:08:1993; 1 курс;
Иван Васильев - 16:06:1986; 2 курс;
Василий Иваненко - 31:12:1993; 3 курс;';
$reg=preg_replace('/(.+) - (\d+)\:(\d+)\:(\d{3,}); (.+);/uU', '$5 - $1: $2.$3.$4;', $data);
echo $reg;
===>>>
1 курс - Леноид Петров: 22.08.1993;
2 курс - Иван Васильев: 16.06.1986;
3 курс - Василий Иваненко: 31.12.1993;
wapmorgan, у тебя же тоже самое что и у меня...тока почему у меня без переносов?
добавлено спустя 32 секунды:
kos, не помогает..пробывал
/(.+) - (\d+):(\d+):(\d{3,}); (.+);/siuU
/(.+) \- (\d+)\:(\d+)\:(\d{3,}); (.+);/uU
второе - моё
Viran, дело было в модификаторе "s", а экранизацию я добавил по совету preg_quote. Без "s" каждая строчка заменяется отдельно от остальных, то есть переносы строк просто не будут включены в замену.
23 Мар 2013, 18:08