Convert literature string via Regular Expressions

From: Bastiaan Wakkie <bastiaaw(at)dds(dot)nl>
To: pgsql-php(at)postgresql(dot)org
Subject: Convert literature string via Regular Expressions
Date: 2003-11-10 15:50:58
Message-ID: 1068479457.5950.13.camel@localhost.localdomain
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-php

Hi all,

I'm having difficulties getting the following literature strings ripped
to prepare it to be inserted into the database.

Here 2 example strings:

Hauser, M., Geller-Grimm, F. (1995): Bestimmungsschlüssel für die Weibchen der deutschen Sphegina-Arten (Diptera, Syrphidae). [Key to distinguish the females of the Sphegina species known from Germany (Diptera, Syrphidae).] - Entomology 2(1/2), 3-19. London.
Mazánek, L., Láska, P., Bicik, V. (1999): Two new Palaearctic species of Eupeodes similar to E. bucculatus (Diptera, Syrphidae) [] - Volucella 4, 1-9. Stuttgart.

Pattern is like this:
Author(s) (year): Title in German or English. [If filled than former
title was a German one and this one is the English translation.] -
Source issue, pages. City.

Author:
Year:
Title EN or DE:
Title EN:
Source:
Issue:
Pages:
Press City:

I tried something like this:

preg_match ("/^[..something..]+/", $string, $regs);

echo ("Author: ".$regs[1]."<br />");
echo ("Year: ".$regs[2]."<br />");
echo ("Title EN or DE: ".$regs[3]."<br />");
echo ("Title EN: ".$regs[4]."<br />");
echo ("Source: ".$regs[5]."<br />");
echo ("Issue: ".$regs[6]."<br />");
echo ("Pages: ".$regs[7]."<br />");
echo ("Press City: ".$regs[8]."<br />");

But I'm having problems with the spaces and the parentheses that I
somehow can't use in the matching...
Any idea how to split the string in the appropriate parts?

Many thanks,
Bastiaan

--
Bastiaan Wakkie <bastiaaw(at)dds(dot)nl>
www.syrphidae.com

Responses

Browse pgsql-php by date

  From Date Subject
Next Message Lonnie VanZandt 2003-11-10 17:54:58 Re: PHP & mySQL Designer
Previous Message Martin Meredith 2003-11-10 14:50:34 Re: PHP & mySQL Designer