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

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

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

 

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

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

тема: обрезать все после второго двоеточия
 
 автор: axex   (23.05.2007 в 10:18)   письмо автору
 
 

00:99 "абв абвабв" ежз, ежзик, "1122334456" ...
нужно все что после второго двоеточия все обрезалось, и на выходе получалось:
00:99 "абв абвабв"

   
 
 автор: Trianon   (23.05.2007 в 10:23)   письмо автору
 
   для: axex   (23.05.2007 в 10:18)
 

не увидел в строке второго двоеточия.... вроде ничего не курил с утра....

   
 
 автор: axex   (23.05.2007 в 10:28)   письмо автору
 
   для: Trianon   (23.05.2007 в 10:23)
 

все что после второй ковычки)

   
 
 автор: cheops   (23.05.2007 в 11:01)   письмо автору
 
   для: axex   (23.05.2007 в 10:18)
 

Можно поступить следующим образом
<?php
  $text 
'00:99 "абв абвабв" ежз, ежзик, "1122334456" ...';
  
$pattern "|[^\"]*\"[^\"]*\"|";
  
preg_match($pattern$text$out);
  echo 
$out[0];
?> 

   
 
 автор: axex   (23.05.2007 в 12:11)   письмо автору
 
   для: cheops   (23.05.2007 в 11:01)
 

А если строк несколько?..

   
 
 автор: Саня   (23.05.2007 в 12:25)   письмо автору
 
   для: axex   (23.05.2007 в 12:11)
 

Добавить в регулярное выражение модификатор "s".

   
 
 автор: axex   (23.05.2007 в 16:37)   письмо автору
 
   для: Саня   (23.05.2007 в 12:25)
 

У меня получился такой скрипт, но условие немного поменялось:

<?php
#Error_Reporting(E_ALL & ~E_NOTICE);
$text = @file("./text.txt","r");
  if(!
$text) {
      exit(
"Ошибка открытия файла: \"text.txt\"");
    } else {
 for (
$i=0$i count($text); $i++) {
   
$pattern "|[^\"]*\"[^\"]*\"|";
 
preg_match($pattern$text[$i], $out);
echo 
$out[0];
 }
}
?>

text.txt:

Понедельник 28 мая
09:10 "Приходи на меня посмотреть" Россия, комедия, 2001
11:00 "Долгие проводы" СССР, драма, 1971
13:00 "Подари мне лунный свет" Россия, мелодрама, 2001
15:00 "Биндюжник и король" Россия, музыкальная комедия, 1991
17:00 "Сумасшедший день" Россия, комедия, 2005
19:00 "Время печали еще не пришло" Россия, драма, 1995
21:00 "Какая чудная игра" Россия, трагикомедия, 1995
23:00 "Похитители книг" Россия, боевик, 2003
01:00 "Плащаница Александра Невского" Россия, детектив, 1991
03:10 "Воры в законе" СССР, криминальная драма, 1988 г.
05:00 "Бедный, бедный Павел" Россия, историческая драма, 2003
07:00 "Кармен" Россия, авантюрная мелодрама, 2003

Вторник 29 мая
09:00 "Биндюжник и король" Россия, музыкальная комедия, 1991
11:00 "Сумасшедший день" Россия, комедия, 2005
13:00 "Время печали еще не пришло" Россия, драма, 1995
15:00 "Д'Артаньян и три мушкетера" СССР, музыкальный фильм, 1978
19:20 "Употребить до" Россия, новое немое кино, мелодрама/комедия, 1999
21:00 "Воры в законе" СССР, криминальная драма, 1988 г.
23:00 "Бедный, бедный Павел" Россия, историческая драма, 2003
01:00 "Кармен" Россия, авантюрная мелодрама, 2003
02:50 "Настройщик" Россия, мелодрама, 2003
05:30 "Займемся любовью" Россия, комедия, 2001
07:00 "Любовь на острове смерти" СССР, фантастический триллер, 1991

.. У меня скрипт вырезает "Понедельник 28 мая", "Вторник 29 мая", оставляя пустые строки..

   
 
 автор: axex   (24.05.2007 в 08:47)   письмо автору
 
   для: axex   (23.05.2007 в 16:37)
 

Никто с рег.выражениями не поможет мне?

   
 
 автор: Trianon   (24.05.2007 в 10:28)   письмо автору
 
   для: axex   (23.05.2007 в 16:37)
 


<?php
  $text 
= @file($name="text.txt");
  if(!
$text)
        exit(
"Ошибка открытия файла: \"$name\"");
   for (
$i=0$i count($text); $i++)
   {
     
$pattern "|([0-9]+:[0-9]{2})[\s]+[\"]([^\"]+)[\"](.*)$|";
     if(
preg_match($pattern$text[$i], $out))
         echo 
"$out[1] $out[2]<br/>\r\n";
   }
?>

   
 
 автор: axex   (24.05.2007 в 14:21)   письмо автору
 
   для: Trianon   (24.05.2007 в 10:28)
 

Ты не понял, необходимо чтобы "Понедельник 28 мая", "Вторник 29 мая" оставались.

   
Rambler's Top100
вверх

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