[vienna.pm] 1 blank ersetzen

roland.bauer at fff.at roland.bauer at fff.at
Tue May 29 18:28:55 CDT 2001


* * * vienna-pm-list * * *


> # Variante 2
> $str = 'a  c';
> $str =~ s/([^ ]) ([^ ])/$1x$2/g;
> print "$str\n"; 

Genauere Ueberlegungen ergeben, das
das zB fuer ein einzelnes Blank am Beginn
auch nicht funktioniert.

So ginge es:

$str = ' c';
$str =~ s/(^|[^ ]) ([^ ])/$1x$2/g;
print "$str\n"; 

Ich glaube langsam, die length-Idee ist
der robusteste Ansatz. Vermutlich weil
er bloss die Anforderung in Perl
formuliert:

"Wenn mehrere Spaces hintereinander ..."

Aber was war genau gwuenscht?
"wie kann ich genau ein Leerzeichen ersetzen ?
Mehrere sollen ignoriert werden ?!"

Das koennte auch heissen:
- 1 Leerzeichen wird zu x
- mehrere werden geloescht

Das ginge dann zB so:

$str = 'a  c';
$str =~ s/ {2,}//g;
$str =~ s/ /x/g;
print "$str\n"; 

Naemlich zweistufig:
- zuerst die mehrfachen loeschen
- die uebriggebliebenen einzelnen substituieren

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