Поиск затем Извлечь - PullRequest
0 голосов
/ 08 октября 2008

У меня есть текстовый файл с несколькими записями. Я хочу найти имя и дату, например, если я набрал JULIUS CESAR как имя, тогда будут извлечены все данные о JULIUS. Что, если я хочу только извлечь информацию?

Record number: 1
Date: 08-Oct-08
Time: 23:45:01
Name: JULIUS CESAR
Address: BAGUIO CITY, Philippines
Information:
I lived in Peza Loakan, Bagiou City
A Computer Engineering student
An OJT at TIPI.
23 years old.

Record number: 2
Date: 09-Oct-08
Time: 23:45:01
Name: JOHN Castro
Address: BAGUIO CITY, Philippines
Information:
I lived in Peza Loakan, Bagiou City
A Electronics Comm. Engineering Student at SLU.
An OJT at TIPI.
My Hobby is Programming.


Record number: 3
Date: 08-Oct-08
Time: 23:45:01
Name: CESAR JOSE
Address: BAGUIO CITY, Philippines
Information:
Hi,,
I lived Manila City
A Computer Engineering student
Working at TIPI.

Ответы [ 2 ]

2 голосов
/ 08 октября 2008

Если это одна строка для каждой записи, вы можете использовать регулярное выражение, например:

$name = "JULIUS CESAR";

Тогда используйте:

/$name/i 

чтобы проверить, соответствует ли каждая строка словам "Юлий Цезарь". Тогда вам просто нужно использовать следующее регулярное выражение для извлечения информации (как только вы найдете строку):

/Record number: (\d+) Date: (\d+)-(\w+)-(\d+) Time: (\d+):(\d+):(\d+) Name: $name Address: ([\w\s]+), ([\w\s]+?) Information: (.+?)$/i

$ 1 = номер записи

$ 2- $ 4 = дата

$ 5- $ 7 = время

$ 6 = адрес

$ 7 = комментарии

Я бы написал пример кода, но мой Perl ржавый. Я надеюсь, что это помогает:)

0 голосов
/ 08 октября 2008

В PHP вы можете запустить SQL-оператор выбора, например:

"ВЫБРАТЬ * ГДЕ name НРАВИТСЯ 'JULIUS%';"

Есть нативные аспекты PHP, где вы можете получить все свои результаты в ассоциативном массиве. Я уверен, что он упорядочен по порядку строк. Тогда вы можете просто сделать что-то вроде этого:

echo implode ("", $ whole_row);

Надеюсь, это то, что вы ищете!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...