Schrift
[thread]7108[/thread]

Problem mit regulärem Ausdruck



<< >> 5 Einträge, 1 Seite
Gast Gast
 2005-07-05 16:55
#56014 #56014
Hallo zusammen,

ich bräuchte einen regulären Ausdruck, der mir in einem String alle mehrfach vorkommenden Semikolons durch ein einfaches ersetzt. Dabei könnten zwischen den Semikolons auch Leerzeichen sein.

Anders ausgedrückt: Ich habe E-mail-Adressen die durch ";" getrennt sind. Falls zwischen zwei ";" nichts steht ausser leerzeichen sollen diese gelöscht werden bis auf eins.

Ich komm da einfach nicht weiter...

Vielen Dank schon mal

Gruß
Marco
Ronnie
 2005-07-05 16:57
#56015 #56015
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
Code: (dl )
s/;\s*;/;/g;
Relais
 2005-07-05 17:00
#56016 #56016
User since
2003-08-06
2244 Artikel
ModeratorIn
[Homepage] [default_avatar]
Code: (dl )
s/(?:;\s*)*;/;/;
=)
Erst denken, dann posten --
26. Deutscher Perl- u. Raku -Workshop 15. bis 17.04.2024 in Frankfurt/M.

Winter is Coming
Gast Gast
 2005-07-05 17:27
#56017 #56017
Vielen Dank!

Die Lösung von Ronnie funktioniert einwandfrei!

@Relais: Wenn ich deine Lösung verwende funktioniert mein komplettes Skript nicht mehr! :) Frag mich aber nicht warum, keine Ahnung!
Trotzdem Danke!

Gruß
Marco
pKai
 2005-07-05 18:50
#56018 #56018
User since
2005-02-18
357 Artikel
BenutzerIn
[default_avatar]
[quote=n0bbi,05.July.2005, 15:27]Die Lösung von Ronnie funktioniert einwandfrei![/quote]
Naja, ich würde gemäß Aufgabestellung die Lösung von Relais vorziehen
Code: (dl )
1
2
3
4
5
6
7
8
9
10
>perl
my $s = 'abc; ; ; ;def';
$s =~ s/;\s*;/;/g;
print "RE1", $s, $/;
$s = 'abc; ; ; ;def';
$s =~ s/(?:;\s*)*;/;/;
print "RE2", $s, $/;
^Z
RE1abc; ;def
RE2abc;def


Edit: Fehlte die Neuzuweisung an $s vor RE2-Anwendung. Ausgabe bleibt aber gleich ;)\n\n

<!--EDIT|pKai|1120575219-->
I sense a soul in search of answers.
<< >> 5 Einträge, 1 Seite



View all threads created 2005-07-05 16:55.