[Dresden-pm] Regex

create-soft at freenet.de create-soft at freenet.de
Mo Mär 30 11:34:27 PDT 2009


Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <http://mail.pm.org/pipermail/dresden-pm/attachments/20090330/aa123c01/attachment.html>
-------------- nächster Teil --------------
On Sat, 28 Mar 2009, at 21:09:31, create-soft at freenet.de wrote:
>On Thu, 26 Mar 2009, at 14:16:50, Falk Herrmann <falk.herrmann at bike24.net> wrote:
>Hi,
>
>hat jemand eine Idee zu regulären Ausdrücken um Leerzeichen zu 
>entfernen, welche nur zwischen Zahlen auftreten?
>
>Bsp.:
>
>"wort1 12 34 56 wort 2"
>
>soll zu
>
>"wort1 123456 wort 2"
>
>werden.
>
>
>Gruß Falk.
>
>#!/usr/bin/perl -w
>#*** test_lookaround.pl ***#
>#-------------------------------------------------
> use strict;
>#-------------------------------------------------
> my $str = "1 2 3 1.wort1 12 34 56 tab 1 \t\t 2 tab 2.wort 2 das 3.wort24 1   2   3   4 endline 1 \n\n\n 2 beginline2 1 1 1 1 10 4";
> $str =~ s{(?:(?:\A)|(?<=\s))([\d ]+)(?:(?=\s)|(?:\z))}{join'',split/ /,$1}eg;
> print("$str\n");
>#-------------------------------------------------
> Gruß Torsten
 So '([\d ]+)' gehts nicht!!!
 Paßt auch auf Leeerzeichen die keine Zahlen enthalten und umgekehrt.
 Also so '(\d+ [\d ]*\d)'.
#!/usr/bin/perl -w
#*** test_lookaround2.pl ***#
#-------------------------------------------------
 use strict;
#-------------------------------------------------
 my $str = "1 2 3 4.wort_5 6 7 8 space:'       ' tab'\t12 34 56\t' newline:'\n44 55 66\n' 22 10 20 30 4";
 print("$str\n");
 $str =~ s{(?:\A|(?<=\s))(\d+ [\d ]*\d)(?=\s|\z)}{join'',split/ /,$1}eg;
 print("$str\n");
#-------------------------------------------------
 Torsten

Gratis: Jeden Monat 3 SMS versenden-
Mit freenetMail - Ihrer kostenlose E-Mail-Adresse
http://email.freenet.de/dienste/emailoffice/produktuebersicht/basic/sms/index.html?pid=6830


Mehr Informationen über die Mailingliste Dresden-pm