[vienna.pm] genau ein whitespace ersetzen ????

Peter J . Holzer hjp at wsr.ac.at
Wed May 30 02:04:51 CDT 2001


On 2001-05-29 11:38:51 +0200, Marcel Grunauer wrote:
> Willst Du alle Spaces ersetzen, solange sie nur einzeln
> auftreten, d.h. nicht mehr als eins nacheinander, nimm
> 
> 	$str =~ s/ (?! )/x/g;

Nicht ganz. Das ersetzt auch das jeweils letzte Blank von mehreren. Man
bräuchte noch ein negative lookbehind, um zu checken, ob davor auch kein
Blank kommt:

    $str =~ s/(?<! ) (?! )/x/g;

Ohne Look(ahead|behind) kommt man aus, wenn man davon ausgeht, daß "kein
Blank" entweder "ein Zeichen, das kein Blank ist" oder Zeilenanfang bzw.
Zeilenende bedeutet:

    $str =~ s/(^|[^ ]) ($|[^ ])/$1x$2/g;

Ist aber auch nicht leichter zu lesen :-)

	hp

-- 
   _  | Peter J. Holzer      | It's nice to fix problems by accident.
|_|_) | Sysadmin WSR / LUGA  |    -- Theo de Raadt
| |   | hjp at wsr.ac.at        |       <deraadt at CVS.OPENBSD.ORG> 
__/   | http://www.hjp.at/   |       on bugtraq 2001-03-19
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 371 bytes
Desc: not available
Url : http://mail.pm.org/archives/vienna-pm/attachments/20010530/efd0c1f4/attachment.bin


More information about the Vienna-pm mailing list