2017-09-20 2 views
0

J'ai une chaîne: "0x1.9999999afpap-4". J'espère avoir une expression régulière pour extraire 1.9999999afpa de cette chaîne. Je cherche une solution d'expression régulière pour extraire tout d'une chaîne sauf le "0x" et "p-4". En attendant, j'espère que cette solution pourrait être appliquée à d'autres chaînes avec des lettres aléatoires et la longueur, comme l'extrait "1.999999999pp" de "0x1.999999999ppp-4"expression régulière pour la position d'arrêt en python 3

Merci.

+0

Vous devez expliquer ce que vous exactement essayez de extraire beaucoup plus clairement. L'expression rationnelle qui correspond le mieux à '1.9999999af' est' 1 \ .9999999af'. Aussi, qu'imaginez-vous que [[$ p] 'fait en fonction de votre interprétation des documents? –

+0

J'ai modifié ma question pour être plus clair. J'ai essayé d'utiliser [$ p-4] ou [^ p ..] pour spécifier la position d'arrêt. – derec

Répondre

0

utiliser un groupe non-capture (note: vous devez échapper au point pour être précis):

test ="0x1.9999999afp-4" 
import re 
new=re.search("1\.\w*(?=[$p])", test) 
print (new.group()) 

maintenant sortie est

"1.9999999af" 
+0

Merci. Pourriez-vous me donner une idée de la façon dont "(? = [$ P])" fonctionne? Cela signifie-t-il que re.search s'arrêtera par p? – derec

+0

recherche ne capture pas p. s'arrête par p ou fin de chaîne. –