Strict Standards: Resource ID#18 used as offset, casting to integer (18) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#24 used as offset, casting to integer (24) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#26 used as offset, casting to integer (26) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#27 used as offset, casting to integer (27) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Регулярное выражение для удаления времени из текста
ТвойWeb ТвойWeb
Качественный Европейский хостинг
Форум для чайников
 Чат на форуме      Помощь      Поиск      Пользователи


 Страниц (2): [1] 2 »   

> Без описания
victor
Отправлено: 06 Июля, 2007 - 04:25:57
Post Id



Full Member


Покинул форум
Сообщений всего: 177
Дата рег-ции: Февр. 2005  

Карма 0




Здравствуйте, ни как не могу сделать правильный себе шаблон. Может кто поможет.

Есть такая строчка для примера:
15.20 Криминальная Россия. "Три товарища". 2-я серия

Хочу удалить время: 15.20

А вместе со временем удаляются все цифры.
Мне надо получить вот такую строчку:


Криминальная Россия. "Три товарища". 2-я серия

Вот сам код что я смог придумать:
CODE:

$str='15.20 Криминальная Россия. "Три товарища". 2-я серия';
preg_match_all("/[^\d].[^\d]+/",$str, $match);
print_r ($match);


Отредактировано модератором: Леголегс, 06 Июля, 2007 - 10:47:19
Фактически некорректное название темы. "PHP шаблон" обычно означает совсем другое, ближе всего "макет", "скин".
То, что ты делаешь - работа с регулярными выражениями. Переименовываю тему.
 
 Top
Alone
Отправлено: 06 Июля, 2007 - 05:06:38
Post Id



Super Member


Покинул форум
Сообщений всего: 2393
Дата рег-ции: Дек. 2004  

Карма 8




victor
Если у тебя время выводится переменной - то проще просто убрать эту переменну, и время не будет выводиться.

Можно ещё так:

CODE:

$str='15.20 Криминальная Россия. "Три товарища". 2-я серия';
$str = str_replace("15.20","",$str);
echo $str;
 
 Top
victor
Отправлено: 06 Июля, 2007 - 08:42:48
Post Id



Full Member


Покинул форум
Сообщений всего: 177
Дата рег-ции: Февр. 2005  

Карма 0




Alone ты не понял сути вопроса.
На вход я подаю массив

Вот часть массива

Array ( [0] => Понедельник, 4 июня 5.00 Телеканал Доброе утро 9.00 Новости 9.05 Малахов + 10.20 Агент национальной безопасности Т/с

И из него при помощи шаблона который я описал выше я удаляю время. Но со временем удаляется любая цифра находящаяся в этом тексте.
Поэтому я попросил, нельзяли какимто образом сделать шаблон который бы удалял только время.

(Отредактировано автором: 06 Июля, 2007 - 08:45:10)

 
 Top
Ray Wen Администратор
Отправлено: 06 Июля, 2007 - 09:14:04
Post Id



Собиратель шишек...


Покинул форум
Сообщений всего: 2602
Дата рег-ции: Янв. 2005  
Откуда: Волгоград

Карма 21




victor
удаляй первые четыре символа, либо перепиши свой алгоритм стирать первые символы до пробела...
 
 Top
Леголегс Администратор
Отправлено: 06 Июля, 2007 - 10:44:03
Post Id



JS-маньяк


Покинул форум
Сообщений всего: 2109
Дата рег-ции: Июль 2004  
Откуда: Липецк

Карма 17




victor
CODE:

$str='15.20 Криминальная Россия. "Три товарища". 2-я серия';
preg_replace("/\d+\.\d+\s+/","",$str);

Останется Криминальная Россия. "Три товарища". 2-я серия
 
 Top
victor
Отправлено: 09 Июля, 2007 - 04:15:37
Post Id



Full Member


Покинул форум
Сообщений всего: 177
Дата рег-ции: Февр. 2005  

Карма 0




Ray Wen читай внимательнее текс. Я подаю весь массив, а не одну строчку.

Из всех предложений хорошее только у Леголегс , но не совсем правильное я использую команду
Цитата:
preg_match_all
что позволяет мне массив поделить на столько массивов сколько строк совпадают по шаблону. И у меня получается что я текст из массива делю на массивы времени и массивы информации. Потом подставляю нужные мне теги и вывожу на экран пользователю.
А твой вариант Леголегс только убирает время оставляя мне массив просто без времени.

Вот то что я хочу:
CODE:

preg_match_all("/[^\d].[^\s\d]+/",$ort[0], $match);


этот шаблон убирает только время, но делит при этом строчку на все пробелы которые существуют в этой строке. Что тоже неподходит.

У ково какие будут предложения.
 
 Top
TvoyWeb Администратор
Отправлено: 10 Июля, 2007 - 03:52:17
Post Id



Главный здесь


Покинул форум
Сообщений всего: 7072
Дата рег-ции: Нояб. 2003  
Откуда: Tashkent Uz

Карма 52




victor
Так давай по другому.
Опиши:
1) Исходные данные целиком, то есть законченный массив который ты подаешь.
2) Что хочешь получить на выходе. Покажи пример массива который ты хочешь получить из исходного.
 
 Top
victor
Отправлено: 10 Июля, 2007 - 04:37:02
Post Id



Full Member


Покинул форум
Сообщений всего: 177
Дата рег-ции: Февр. 2005  

Карма 0




TvoyWeb мне нужно из текстового файла телевизионной программы получить файл XML для этого я сделал следующее. Разделил источник на дни. Получил массив дня. Теперь мне нужно разделить время от основной информации. Это я сделал очень легко:
Исходник массива который подается я прикрепляю.
CODE:

preg_match_all("/\d??\d\.[0-9][0-9]/",$can, $match2); //только время


На выходе получил массивы содержащие только время. Массив содержит 26 элементов.
Теперь мне надо получить такое же количество элементов в массиве текста удалив из него время. Что я и попыталься сделать. В первом случае он убирает время но при этом убирает и все цифры находящиеся в строчке при этом количество элементов между массивами естественно разное
CODE:

preg_match_all("/[^\d].[^\d]+/",$str, $match);

во втором случае он убирает время и все пробелы
CODE:

preg_match_all("/[^\d].[^\s\d]+/",$ort[0], $match);


вот если бы вот эти патэрны ^\s\d сгрупировать. Заставить работать как одно условие. То тогда проблемма была бы возможно решена. А так получается каждый патэрн работает на себя.

Тоесть на данном этапе мне надо получить два источника массивов, один со временем, другой с информацией.
Пример:
time[0]=5.00
inf[0]=Телеканал «Доброе утро»

Если это получится, мне остается только подставить тэги XML файла и сохранить.

Какие будут соображения?
Скачать файл: ort-mon.txt
Скачан раз: 497

(Отредактировано автором: 10 Июля, 2007 - 05:04:08)

 
 Top
Леголегс Администратор
Отправлено: 10 Июля, 2007 - 06:11:51
Post Id



JS-маньяк


Покинул форум
Сообщений всего: 2109
Дата рег-ции: Июль 2004  
Откуда: Липецк

Карма 17




victor
В регулярных выражениях точка озанчает не точку, а любой символ. Поставь бэкслеш перед точкой.
 
 Top
victor
Отправлено: 10 Июля, 2007 - 09:08:36
Post Id



Full Member


Покинул форум
Сообщений всего: 177
Дата рег-ции: Февр. 2005  

Карма 0




Спасибо Леголегс но непомогает. Проблема не в точке а в вырезании цифр. Надо поидее применить шаблон вот такого типа: /^(\d{1,2}\.\d{2})./
Что по идее озночает небрать время. Но вот как правильно это написать?
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0, скрытых: 0)
« PHP/Perl »


Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только администраторы и модераторы могут отвечать на сообщения в этом разделе.
 



Форум на AlfaSpace.NET


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0529]     [ Gzipped ]



Notice: ob_end_flush(): failed to send buffer of ob_gzhandler (1) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/page_tail.php on line 33