Анализируйте многоязычные журналы информации о рейсах и извлекайте потенциально разделенные пробелами номера рейсов.Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Анализируйте многоязычные журналы информации о рейсах и извлекайте потенциально разделенные пробелами номера рейсов.

Сообщение Anonymous »

У меня есть такие данные

Код: Выделить всё

1  #VS   5 J9 C9 D9 I9 Z9 W9 S9 H9 LHRMIA 1235 1705      744 0E
        K9 Y9 B9 R9 L9 U9 M9 E9 Q9 X9 N9 O9 
2  #IB4637 F9 A9 J9 C9 D9 R9 I. W9 LHRMIA 1415 1825   *  744 0E
        Z. Y9 B9 H9 K. M. L. V. S. N. Q. O.
3*O#AA  57 F7 A7 P7 J7 R7 D7 I7 Y7 LHRMIA 0945 1415      777 0E
        B7 H7 K7 M7 L7 V7 G7 S7 Q7 N7 O7 
Я пытаюсь найти лучший способ разделения этих данных, чтобы получить нужные мне данные. Для начала я делаю следующее

Код: Выделить всё

$elNum = 0;

while ($elNum < $elements->length)
{
$flightInfo = $elements->item($elNum)->nodeValue;

if ( preg_match('/^\\d/', $flightInfo ) === 1 )
{
++$elNum;
}
}

Код: Выделить всё

$elements
представляет каждый текстовый элемент, который я ему передаю. Вот что я знаю. Основная строка всегда начинается с цифры, поэтому я использую preg_match(). Строка, следующая за строкой, начинающейся с цифры, связана с предыдущей строкой. По сути, в приведенном выше примере есть два ряда для каждого рейса.
Я думал о том, чтобы разбить ряд на пробелы, но я мог бы сделать это, когда дело доходит до получения мест (J9 , М., И7 и т. д.). Для начала мне нужны номера рейсов.
Номер рейса всегда начинается с #. Код авиакомпании всегда состоит из 2 заглавных букв, номер рейса может состоять из 1-4 цифр. Итак, с учетом вышеизложенного я мог бы сделать что-то вроде

Код: Выделить всё

$pat = strpos($flightInfo, "#");
Это приведет меня к началу каждого номера рейса. Вот самая сложная часть: номера рейсов не такие, как в примере выше. Первый — VS, затем 2 пробела, а затем 5 (то есть VS5). Второй прямо, все вместе(

Код: Выделить всё

IB4637).  Последний - АА, затем 2 пробела, а затем 57 (AA57).  Иногда есть только один пробел.
Таким образом, код авиакомпании всегда будет привязан к #, и я знаю, что его длина всегда равна 2, поэтому, чтобы получить его, я мог бы сделать что-то вроде
$fltcode = substr($flightInfo, $pat+1, 2);
Мой главный вопрос: как я могу обработать его числовую часть, если она может иметь длину от 1 до 4, ее можно прикрепить к номеру рейса, но также можно разделить на единицу или больше пробелов?

Подробнее здесь: https://stackoverflow.com/questions/292 ... rated-flig
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»