| 

.NET C# Java Javascript Exception

1
ich möchte wörter die buchstaben und zahlen enthalten aus einem string herausfiltern.

beispiel: 'hallo 34x kl453 83GB12 HU92PT'
ergebniss: '34x, kl453, 83GB12, HU92PT'

problem ist, dass ich nicht genau weiß wie hiefür der reguläre ausdruck aussehen muss
12.07.2011
burner007 810 1 2 9
burner007 810 1 2 9
2 Antworten
2
Hallo,

dreh das Problem um. Enferne alle Terme die nur Text enthalten und setzt das Komma nach jedem verbleibenden Wort ein.

mfG Gü
12.07.2011
gfoidl 9,4k 3 5
ärgerlich das man selber nicht mal drauf kommt! so läufts
burner007 13.07.2011
2
Hi,

\b
(?=\d*[a-zA-Z])
(?=[a-zA-Z]*\d)
[a-zA-Z\d]+\b

(in einer Zeile geschrieben) sollte es sein, wobei ich dazusagen muss, dass python nicht wirklich mein Gebiet ist ;)

In der 2. Zeile wird geprüft, ob nach beliebig vielen Zahlen ein Buchstabe vorkommt. In der 3. Zeile wird das Gleiche andersrum versucht.
Erst danach wird auch wirklich das Wort ausgewählt.

Damit werden allerdings keine Umlaute erfasst. Einfach umstellen auf
\w
geht aber nur, wenn "character class subtraction" verfügbar ist. Damit könnte man z.B.
\b
(?=\d*[\w-[\d]])
(?=[\w-[\d]]*\d)
\w+\b
verwenden.

\w
gibt auch "_" als Treffer aus. Wenn das schon zuviel am Wort ist, muss dies entweder mit "character class subtraction" entfernt werden, also
[\w-[_]]
oder das Zeichen darf erst gar nicht in der Klasse auftauchen, also überall z.B.
[a-zA-ZÄÖÜäöüß]
statt
\w
Dann wird's aber unübersichtlich und die LOCALE-Einstellungen hat man schön umgangen, was hoffentlich nicht Sinn der Übung ist ;)

Falls character class subtraction nicht verfügbar ist, gibt's eventuell auch noch eine andere Möglichkeit, nur Buchstaben (LOCALE-abhängig) auszuwählen (vielleicht. die POSIX-Klasse [:alpha:] ?).
12.07.2011
WolfgangKluge 1,0k 2 7

Stelle deine String-Frage jetzt!