powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP)Вопрос про регулярные выражения - обработка текста.
3 сообщений из 3, страница 1 из 1
(PHP)Вопрос про регулярные выражения - обработка текста.
    #33068906
GDR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GDR
Гость
Привет всем. У меня есть вопрос про регулярные выражения. Стоит задача обработки текстовых файлов измерений - поиск данных и запись в БД. Задача решена на Delphi - построчное чтение, срабатывание по ключевым словам, выборка данных. Хотелось бы написать более гибкий вариант обработки на PHP под Win32 (консоль) с помощью регулярных выражений.
Данные в файлах определены в виде блоков данных. Примерный вид такой:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
    NAME_SW         2005-05-15  00:00:24  SU//собственно начало репортажа
    NAME_USR  0007/000C/0009//нужен NAME_USR
    SEQ=4321+2001-01-11 22222//нужен 22222
    SOME_KIND MONITORING

       ACTIVATE_MEASUREMENT                                           SUCCESSFUL
                                                           RESULT    PART 0001 +
       -------------------------------------------------------------------------
       SOME_KIND_TEXT
       SOME_KIND_TEXT2
       -------------------------------------------------------------------------
       JOB IDENTITY       = 4321+2001-01-11
       SCHEDULED TIME     = 1999-01-01  00:00//нужна дата и время
       KIND_OF_DATA1      =     123456//нужны 123456
         KIND_OF_DATA2    =     234567//нужны 234567
         KIND_OF_DATA3    =        125//нужны 125
         
      REPORT FOLLOWS   =        22222//собственно конец репортажа
Ищу данные в тексте с помощью preg_match_all. Нужны данные, указанные в комментариях.
Хотелось бы - на нужный репортаж написать свое регулярное выражение для поиска. Начал описывать регулярное выражение, учитывающее каждую строку.
Сразу возник вопрос - как описать покороче кусок ненужной информации вида:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
    SOME_KIND MONITORING

       ACTIVATE_MEASUREMENT                                           SUCCESSFUL
                                                           RESULT    PART 0001 +
       -------------------------------------------------------------------------
       SOME_KIND_TEXT
       SOME_KIND_TEXT2
       -------------------------------------------------------------------------
       JOB IDENTITY       = 4321+2001-01-11
Я пишу примерно так:
Код: plaintext
1.
2.
3.
4.
5.
6.
$pattern = '/';
$pattern = $pattern.'\s{4}SOME_KIND\sMONITORING\r\n';
$pattern = $pattern.'\r\n';
$pattern = $pattern.'\s{7}ACTIVATE_MEASUREMENT\s{43}SUCCESSFUL\r\n';
//и так далее построчно
$pattern = $pattern.'/';
Есть ли вариант проще описать блок ненужных данных? Есть ли какие-нибудь ссылки и способы как проще решить задачу? Спасибо.
...
Рейтинг: 0 / 0
(PHP)Вопрос про регулярные выражения - обработка текста.
    #33070747
Ksnk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Возможно, разумнее качать то, что нужно, а не то, что не нужно ...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
<?php
$content=implode("",file("t.txt"));
$preg="~(NAME_USR)".
      "|(SEQ)=[^ ]* (\d+)".
      "|(SCHEDULED TIME) += ([\d|-]*)".
      "~" ;

preg_match_all($preg,$content,$m);
echo "<hr>" ;
for ($i= 0 ; $i < count($m[ 0 ]) ; $i++)
{ for ($j= 1 ;$j<count($m);$j++) 
   echo ($m[$j][$i])?" m[".$j."][".$i."]='".$m[$j][$i]."'":"";
  echo "<br>" ;
}
echo "<hr>" ;

?>
Попробуй поотлаживать прег в таком вот скрипте... t.txt - это, якобы, твой лог...
...
Рейтинг: 0 / 0
(PHP)Вопрос про регулярные выражения - обработка текста.
    #33071026
GDR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GDR
Гость
2 Ksnk - спасибо. Как вариант - пойдет. Вчера правда я нашел вариант, как описать то, что мне ненужно в тексте. Мой вариант работает, теперь попробую твой. Отпишусь о результатах.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP)Вопрос про регулярные выражения - обработка текста.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]