String mit und ohne Anführungszeihchen erkennen.

11/04/2010 - 01:56 von kai-martin knaak | Report spam
Als Perl-Anfànger scheitere ich gerade an einem regexp-Ausdruck. Der
Ausdruck soll einen Substring heraussuchen, der möglicherweise von
Gànsefüßchen begrenzt wird.

Genauer:
Gegeben ist ein Substring, der alternativ aus einem String ohne Space, oder
einem von Anführungszeichen begrenzten String mit möglicherweise Leerzeichen
besteht. Beispiele für den Substring:
foobar
"foo bar"
"f o o b a r"
" foo bar"

Mein Versuch
(\S+|".*?")
schneidet leider in der Gànsefüßchenform den ersten Teil weg. Vom zweiten
Beispiel bekomme ich:
bar"
zurück. Und beim dritten Beispiel:
o o b a r"

Offensichtlich habve ich etwas mit dem Oder-| nicht ganz verstanden. Wie
macht man so etwas richtig?

<)kaimartin(>
Kai-Martin Knaak
Öffentlicher PGP-Schlüssel:
http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x6C0B9F53
 

Lesen sie die antworten

#1 kai-martin knaak
11/04/2010 - 03:23 | Warnen spam
kai-martin knaak wrote:

Mein Versuch
(\S+|".*?")
schneidet leider in der Gànsefüßchenform den ersten Teil weg. Vom zweiten
Beispiel bekomme ich:
bar"
zurück. Und beim dritten Beispiel:
o o b a r"

Offensichtlich habve ich etwas mit dem Oder-| nicht ganz verstanden. Wie
macht man so etwas richtig?



Das mit dem | hatte ich schon richtig verstanden. Das Problem war vielmehr,
dass der erste Teil auch schon auf das " angesprungen ist. Nach etwas
knobeln bin ich auf diesen Ausdruck gekommen, der zu tun scheint, was ich
mir erhoffe:
([^"^\s]+|".*?")

<)kaimartin(>
Kai-Martin Knaak
Öffentlicher PGP-Schlüssel:
http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x6C0B9F53

Ähnliche fragen