Помогите составить регулярное выражение плиз! Срочно...

pitaval

Guest
Помогите составить регулярное выражение плиз! Срочно...

Как при помощи регэкспов можно работать с данными такого вида
<name||surname||address||phone||birthdate>
чтобы разбирать все это по полям из файла со множеством таких записей (текстовая БД)?
 

SelenIT

IT-лунатик :)
ИМХО, для работы с данными такого вида регэкспы не нужны
 

pitaval

Guest
Так мне нужно еще и искать в этом файле записи у которых к примеру будет определенный name?
 

pitaval

Guest
файл очень будет и проходить по нему с помощью цикла и эксплода ну очень трудно и много времени жрет

-~{}~ 26.11.04 18:47:

а читаю обычно при помощи fopen и fread
 

_RVK_

Новичок
Так мне нужно еще и искать в этом файле записи у которых к примеру будет определенный name?
а тут тебе поможет [m]strstr[/m], если нужно искать определенную строку, а не по маске.
 

pitaval

Guest
Нет это тоже не подходит, так как мне еще нужен эквивалент UPDATE в MySQL и тут все равно придется воспользоваться регами
 

SelenIT

IT-лунатик :)
pitaval
разве использование регэкспов избавляет от необходимости читать файл циклом по строкам?
 

pitaval

Guest
А я не хочу заводить БД, я хочу текстовые базы, и мне нужен просто рег для это формата данных...
 

pitaval

Guest
И вообще странно так, я обратился за помощью по поводу рег выражения а в результате все превращается в разговор о моей привязанности или непривязанности к MYSQL...

-~{}~ 26.11.04 19:06:

поверьте мне я уже испробовал все варианты... а составленный мною рег глючит:
/\<(.*?)\|\|(.*?)\|\|(.*?)\|\|(.*?)\|\|(.*?)\>\n/ism
 

SelenIT

IT-лунатик :)
pitaval
Уточни, что именно должен находить искомый рег. А в идеале уточни еще и схему, как ты будешь его использовать.
 

_RVK_

Новичок
pitaval
Зачем ты экранируешь "|"? он за скобками не экранируется.
 

pitaval

Guest
В общем есть функция имитатор селекта, открывает файл, и ищет запись по указанному фильтру к примеру name=Vasya,
т.е:
/\<Vasya\|\|(.*?)\|\|(.*?)\|\|(.*?)\|\|(.*?)\|\|(.*?)\>\n/ism
потом результы сливаю в ассоц. массив как при mysql_fetch_row()
 

_RVK_

Новичок
pitaval
проходишь по файлу, построчно.
Смотришь наличие строки Vasya в строке, с помощью рега(если поиск нестрогий) или strstr($st,'<Vasya||').
Пишешь нужные строки в массив.
В чем проблема не пойму? Поуберай лишние слеши, и все заработает.
 
Сверху