probleme mit regex ( /^((.[^ ])+ )+$/ !~ '1 c h a r ' ???)

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
Costi
User
Beiträge: 545
Registriert: Donnerstag 17. August 2006, 14:21

halo,
ich will eien regex, die erkennt, ob beliebig viele zeichen mit einen ' ' am ende folgen. das mueste doch '^((.[^ ])+ )+$' sein oder?

warum MATCHt das aber nicht bei nur einen zeichen:

Code: Alles auswählen

>>> re.match('^((.[^ ])+ )+$', 'fery wyf 346u ^&*( ')
<_sre.SRE_Match object at 0xb7d95578>
>>> print re.match('^((.[^ ])+ )+$', 'f w 3 ^ ')
None


danke
cp != mv
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

Ich hätte ^[^ ]* $ gesagt
Benutzeravatar
mq
User
Beiträge: 124
Registriert: Samstag 1. Januar 2005, 19:14

"(.[^ ])+" heisst "ein beliebiges Zeichen, dann ein Zeichen, dass kein Leerzeichen ist, und diese Kombination beliebig oft wiederholt"
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

achja ich würde mir http://www.amk.ca/python/howto/regex/ anschauen!
Costi
User
Beiträge: 545
Registriert: Donnerstag 17. August 2006, 14:21

"(.[^ ])+" heisst "ein beliebiges Zeichen, dann ein Zeichen, dass kein Leerzeichen ist, und diese Kombination beliebig oft wiederholt"
hmm, ich dachte ein belibiges zeichen, dass kein leerzeichen ist. ein leerzeichen. und das alles beliebig oft

edit:
ahh, jetzt sehe ich auch mein denkfehler: ich dachte \w[^b] wuerde ein buchstabe aber kein b und nicht ein buchstabe und danach irgendetwas was nich b ist MATCHen
cp != mv
Costi
User
Beiträge: 545
Registriert: Donnerstag 17. August 2006, 14:21

und warum geht das nicht:

Code: Alles auswählen

>>> print re.match('^([^ ]+ ){2, 5}$', 'srg ety dsf ')
None
das sind doch insgesamt 3 [^ ]+ und drei liegt zwischen 2 und 5 oder?
cp != mv
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Du darfst bei der erlaubten Anzahl keine Leerzeichen einfügen. {2,5} statt {2, 5} funktioniert.
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Jamie Zawinski hat geschrieben:Some people, when confronted with a problem, think “I know, I’ll use regular expressions.” Now they have two problems.
SCNR
Antworten