[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [OT] - Regulärer Ausdruck



Robert Kasunic <robert@kasunic.de> writes:

> Ich hatte eine Lösung mit einer regexp angestrebt.

Wenn man davon ausgehen darf, dass alle Wörter in Deiner Text-Spalte
mehr als einen Buchstaben haben, dann geht das z.B. so (in Perl):

s/([^\s\d])\s+([^\s\d])/$1_$2/g

Also folgendes geht zumindest damit:

echo "1 2 3 bla fasel gg" | perl -pe 's/([^\s\d])\s+([^\s\d])/$1_$2/g

Als Ausgabe erhält man: 1 2 3 bla_fasel_gg

Wenn auch Wörter mit nur einem Buchstaben mitten im Text erlaubt sein
sollen, müßte man wohl mit look-ahead arbeiten (ein "\s+(?=[^\s\d])"
sollte beispielsweise auf mindestens ein Whitespace matchen, auf das
ein Buchstabe folgt, ohne den Buchstaben selbst schon zu bearbeiten.
Er stünde dann also für den weiteren Verlauf des Ausdruckes noch zur
Verfügung).

Die Buchstabenerkennung kann man garantiert schöner und nativer
gestalten, wenn man die richtige Charakterklasse benutzt, die mir aber
im Moment absolut nicht einfallen will... Da oben wird ja jetzt nur
auf "nicht Zahl und nicht Whitespace" geprüft - Interpunktion lassen
wir also auch gelten.

[x] ulf

-- 
TEAMWORK... means never having to take all the blame yourself.

--
-----------------------------------------------------------
Um sich aus der Liste auszutragen schicken Sie bitte eine
E-Mail an debian-user-de-request@lehmanns.de die im Subject
"unsubscribe <deine_email_adresse>" enthaelt.
Bei Problemen bitte eine Mail an: Jan.Otto@Lehmanns.de
-----------------------------------------------------------

846 eingetragene Mitglieder in dieser Liste.


Reply to: