[vienna.pm] genau ein whitespace ersetzen ????
roland.bauer at fff.at
roland.bauer at fff.at
Tue May 29 18:09:22 CDT 2001
* * * vienna-pm-list * * *
> Willst Du alle Spaces ersetzen, solange sie nur einzeln
> auftreten, d.h. nicht mehr als eins nacheinander, nimm
>
> $str =~ s/ (?! )/x/g;
Ich hab's ausprobiert:
use strict;
my $str;
# Ersetzt jedes Blank, das nicht
# von einem anderen gefolgt wird.
# Das trifft aber auch auf das
# letzte Blank von mehreren zu.
$str = 'a c';
$str =~ s/ (?! )/x/g;
print "$str\n"; # ----> 'a xc'
# Ersetzt nur Blanks, wo vorher und
# nachher kein Blank steht.
$str = 'a c';
$str =~ s/([^ ]) (?! )/$1x/g;
print "$str\n";
# Variante 2
$str = 'a c';
$str =~ s/([^ ]) ([^ ])/$1x$2/g;
print "$str\n";
# Variante 3
$str = 'a c';
$str =~ s/(?:[^ ]) (?:[^ ])/x/g;
print "$str\n";
# Variante 4
$str = 'a c';
$str =~ s/(?:[^ ]) (?! )/x/g;
print "$str\n";
Die Varianten entstehen dadurch, dass man sich
aussuchen kann, wo man den Schreibaufwand haben
will ...
s/([^ ]) (?! )/$1x/g;
s/(?:[^ ]) (?! )/x/g;
Oder, gemaess der length-Idee:
$str = 'a c';
$str =~ s/ +/$& eq ' '?'x':$&/eg;
print "$str\n";
Schoene Gruesse
Roland
###
You are subscribed to vienna-pm-list as <roland.bauer at fff.at>
http://www.fff.at/fff/vienna.pm/
More information about the Vienna-pm
mailing list