Xwab
Форумыnavigate_nextНебольшие вопросы по PHP/MySQL

Не большой вопрос про регулярное выражение
Сообщения
Viran

Привет всем. Народ имеется такой текст:

Леноид Петров - 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);

Подскажите как сделать так чтоб конечный текст был как начальный? Т.е. с переносом строки?

22 Мар 2013, 16:54
kos

попробуй \n добавить.

22 Мар 2013, 17:33
wapmorgan

$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;

22 Мар 2013, 17:46
Viran

wapmorgan, у тебя же тоже самое что и у меня...тока почему у меня без переносов?
добавлено спустя 32 секунды:
kos, не помогает..пробывал

22 Мар 2013, 18:54
wapmorgan

/(.+) - (\d+):(\d+):(\d{3,}); (.+);/siuU
/(.+) \- (\d+)\:(\d+)\:(\d{3,}); (.+);/uU
второе - моё

22 Мар 2013, 19:32
Viran

wapmorgan, Спасибо. Надо же...простая экранизация какие чудеса тварит...

23 Мар 2013, 8:48
wapmorgan

Viran, дело было в модификаторе "s", а экранизацию я добавил по совету preg_quote. Без "s" каждая строчка заменяется отдельно от остальных, то есть переносы строк просто не будут включены в замену.

23 Мар 2013, 18:08
Viran

wapmorgan, ясно, спасибо еще раз..)

23 Мар 2013, 19:05
Ответить на тему