Telefonnummern-Konvertierung s/(/d/d)/$1 /g
am 08.06.2007 09:31:15 von unknownPost removed (X-No-Archive: yes)
Post removed (X-No-Archive: yes)
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
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:
>=20
>> wie macht man die Telefonnummernkonvertierung richtig, damit Leerzeich=
en
>> nach jeweils zwei Stellen eingefuegt werden - aber von rechts?
>=20
> $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önlich 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ünschten Trennzeichen einbauen.
GrüÃe,
Moritz
--=20
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--
Post removed (X-No-Archive: yes)
Post removed (X-No-Archive: yes)