Telefonnummern-Konvertierung s/(\d\d)/$1 /g

Post removed (X-No-Archive: yes)
Notifier Deamon [ Fr, 08 Juni 2007 09:31 ] [ ID #1733681 ]

Re: Telefonnummern-Konvertierung s/(\d\d)/$1 /g

On Fri, 08 Jun 2007 07:31:15 +0000, Martin Trautmann wrote:

> wie macht man die Telefonnummernkonvertierung richtig, damit Leerzeichen
> nach jeweils zwei Stellen eingefuegt werden - aber von rechts?

$number =~ s{((?:\d\d)+)(-\d+)?$}{
$n = $1;
$f = $2;
$n =~ s/(..)/ $1/g;
"$_$f"
}ge;

-Samuel
Samuel [ Fr, 08 Juni 2007 16:45 ] [ ID #1733686 ]

Re: Telefonnummern-Konvertierung s/(\d\d)/$1 /g

This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
--------------enig47491D4ECF68436559CD1264
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Hallo,

Samuel wrote:
> On Fri, 08 Jun 2007 07:31:15 +0000, Martin Trautmann wrote:
>
>> wie macht man die Telefonnummernkonvertierung richtig, damit Leerzeich=
en
>> nach jeweils zwei Stellen eingefuegt werden - aber von rechts?
>
> $number =3D~ s{((?:\d\d)+)(-\d+)?$}{
> $n =3D $1;
> $f =3D $2;
> $n =3D~ s/(..)/ $1/g;
> "$_$f"
> }ge;

YaY, rekursive Regex.
Wer das nicht mag (ich pers=C3=B6nlich habe nichts dagegen), kann das gan=
ze
auch iterativ machen.

Ungetested:

while ( $number =3D~ s/^([^_]*)(\d\d)/$1_$2/) { 1; }

Die Idee ist, von Hinten zwei Ziffern abzutrennen, und durch _ getrennt
wieder dranzuklatschen. Damit man nicht immer die gleichen zwei Zahlen
hinten erwischt, darf vor den beiden Zahlen kein _ stehen. D.h. man
braucht hier eine gierige, verankerte regex.

Das Ergebnis ist sowas wie '1_23_45', das kann man dann durch split /_/
jagen dann die gew=C3=BCnschten Trennzeichen einbauen.

Gr=C3=BC=C3=9Fe,
Moritz

--
Moritz Lenz
http://perl-6.de/ http://moritz.faui2k3.org/


--------------enig47491D4ECF68436559CD1264
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFGaXUGAAkekJBI0yIRAvr5AKDKpEEgz4WdsRRl2f+/9ne0HXOaPwCd Hc9w
UoLMt4Jgwh8vPlzGZ+oMiMs=
=kJEQ
-----END PGP SIGNATURE-----

--------------enig47491D4ECF68436559CD1264--
Moritz Lenz [ Fr, 08 Juni 2007 17:25 ] [ ID #1733687 ]

Re: Telefonnummern-Konvertierung s/(\d\d)/$1 /g

Post removed (X-No-Archive: yes)
Notifier Deamon [ Fr, 08 Juni 2007 17:33 ] [ ID #1733688 ]

Re: Telefonnummern-Konvertierung s/(\d\d)/$1 /g

Post removed (X-No-Archive: yes)
Notifier Deamon [ Fr, 08 Juni 2007 17:39 ] [ ID #1733689 ]
Perl » de.comp.lang.perl.misc » Telefonnummern-Konvertierung s/(\d\d)/$1 /g

Vorheriges Thema: seltsame Fehlermeldung in "Eclipse + EPIC"
Nächstes Thema: Net::IMAP::Simple will nicht so recht...