Sonderzeichen im String erkennen..

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Teabag
User
Beiträge: 81
Registriert: Sonntag 13. Mai 2007, 20:44

Donnerstag 11. September 2008, 20:04

Hallo, ich bins mal wieder.
Ich habe ein problem,
mein programm soll Sonderzeichen wie ", ; . - ( ) / ? " ........
in einem string erkennen..
so dass wenn ich habe:
a = ","
das programm sagt..
dass es a ein sonderzeichen ist..

Gibt es dazu irgend einen Befehl.. bzw. eine Funktion??

Ich danke Euch schonmal vielmals.

viele liebe Grüße

Teabag
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Donnerstag 11. September 2008, 20:10

Wenn du genau weißt, welche Sonderzeichen in Frage kommen, dann z.B. so:

Code: Alles auswählen

>>> text = "Hallo, du da!"
>>> sonderzeichen = ".,/!?"
>>> for ch in text:
...     if ch in sonderzeichen:
...         print "%s ist ein Sonderzeichen" %ch
...
, ist ein Sonderzeichen
! ist ein Sonderzeichen
Oder über ord() prüfen, ob das Zeichen in einem bestimmten Bereich liegt.
BlackJack

Donnerstag 11. September 2008, 20:10

Kommt drauf an was Du als Sonderzeichen ansiehst.

Code: Alles auswählen

In [380]: import string

In [381]: string.punctuation
Out[381]: '!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'

In [382]: a = ','

In [383]: a in string.punctuation
Out[383]: True
Teabag
User
Beiträge: 81
Registriert: Sonntag 13. Mai 2007, 20:44

Donnerstag 11. September 2008, 20:11

ah xD klar,
@ numerix: da hätte ich aber selbst drauf kommen können :-D
vielen Dank

teabag
Benutzeravatar
Craven
User
Beiträge: 223
Registriert: Dienstag 24. Januar 2006, 13:37

Donnerstag 11. September 2008, 20:16

z.B. könntest Du sowas machen:

Code: Alles auswählen

from string import punctuation as p
a = "as+dk3/a%sd..,k&"
[(x, y) for x, y in enumerate(a) if y in p]
# Ausgabe: [(5, '/'), (10, '&')]
Edit: Zu langsam ... :wink:
[code]q = 'q = %s; print q %% repr(q)'; print q % repr(q) [/code]
Antworten