2009-10-06 9 views
2

Erreur:"mauvaise gamme de caractères" exception?

Exception Value:  bad character range 
Exception Location: /usr/lib/python2.6/re.py in _compile, line 245 
Python Executable: /usr/bin/python 

Je n'ai absolument aucune idée de ce que cela signifie. Quelqu'un peut-il hasarder une estimation ou me diriger dans la bonne direction?

Tout fonctionnait bien avant ... J'ai seulement changé quelques bits triviaux de code! : S

if "-" in stop: 
    dt1 = datetime.strptime(stop, "%Y-%m-%dT%H:%M:%S") 
    stopInS = time.mktime(dt1.timetuple()) 
    stopInMS = int(startInS) * 1000 
else: 
    splitter = re.compile(r'[\D]') 
    preStop = splitter.split(stop) 
    stopInMS = ''.join(preStop) 

Je ne faisais que jouer avec les guillemets doubles avant le « dans » ... alors tout est effondré avec cette erreur.

EDIT:

Une autre présente regex:

splitter1 = re.compile('[:]') 
    arrayOfIDs = splitter1.split(identifier) 
    idLens = len(arrayOfIDs) 
+0

Et quels seraient ces bits de code? –

+0

Je n'en ai aucune idée, ça ne me dit pas la ligne de code qu'elle n'aime pas? re.py est un module Python n'est ce pas? – Federer

+0

Oui - vous avez dit dans la question que vous avez seulement changé quelques bits triviaux de code - je me demandais ce que ces bits étaient. Utilisez-vous des expressions régulières n'importe où? Si c'est le cas, publiez les bits de votre code explicitement en utilisant des expressions régulières. Si vous n'utilisez pas explicitement des expressions régulières, alors je * pense * que cette erreur pourrait être à un mauvais modèle d'URL, mais je peux me tromper. –

Répondre

7

L'exception que vous obtenez est parce que le module re.py Python ne peut pas compiler quelque part une expression régulière, parce que vous avez un mauvaise plage de caractères.

Les plages de caractères sont des choses comme [a-z0-9] (accepte une lettre ou un chiffre en minuscule).

Par exemple:

import re 
re.compile('[a-0]') 

soulève la vous exception bad character range obtenir. Cherchez quelque part que vous créez une gamme de caractères qui n'a pas de sens (ce n'est pas [:], qui compile bien).

+0

Je souhaite que cela fonctionne :(Toujours obtenir la même erreur – Federer

+0

En fait, je viens de tester la compilation de 'r '[\ D]'' et il compile.Toutes les autres expressions rationnelles autour? –

+0

Et l'erreur disparaît si vous supprimez cette ligne et mettre 'stopInMS' à une valeur bénigne? –