Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Probleme re

2 réponses
Avatar
Alain BARTHE
J'ai un problème dans l'utilisation du module re.

Je voudrais isoler plusieurs champs contenus dans des lignes successives
d'un fichier (ou d'une chaine multilignes).

Par exemple :

data = """annee=2008
mois=08
jour=02
"""

J'ai essaye :

exp = re.compile ("annee=(\d+)$mois=(\d+)$jour=(\d+)", re.MULTILINE)

res = exp.match (data)

if res: print res.groups()

Mais ça ne fonctionne pas.

Apparemment je n'ai pas compris comment gérer les multi-lignes, et
représenter le saut de ligne dans le pattern.

2 réponses

Avatar
JB
n permet de matcher le saut de ligne

ju.
Avatar
Alain BARTHE
JB a écrit :
n permet de matcher le saut de ligne

ju.



Merci pour ton aide.

J'avais déjà essayé le n, mais mon problème provenait d'un mélange
entre re.MULTILINE, re.VERBOSE et l'oubli du r""".

L'exemple était volontairement simplifié, en fait la chaine à analyser
était :

adt7463-i2c-1-2c
V1.5: +2.627 V (min = +0.00 V, max = +3.32 V)
VCore: +1.310 V (min = +0.00 V, max = +2.99 V)
V3.3: +3.339 V (min = +0.00 V, max = +4.38 V)
V5: +5.052 V (min = +0.00 V, max = +6.64 V)
V12: +12.031 V (min = +0.00 V, max = +15.94 V)
CPU_Fan: 11368 RPM (min = 0 RPM)
fan2: 11273 RPM (min = 0 RPM)
fan3: 0 RPM (min = 0 RPM)
fan4: 0 RPM (min = 0 RPM)
CPU Temp: +37.75°C (low = -127°C, high = +127°C)
Board Temp:
+45.50°C (low = -127°C, high = +127°C)
Remote Temp:
+38.75°C (low = -127°C, high = +127°C)
CPU_PWM: 64
Fan2_PWM: 64
Fan3_PWM: 64
vid: +1.550 V (VRM Version 2.4)


Je cherchais à relire les valeurs des 3 températures (CPU, board et remote).

J'y suis finalement arrivé avec le code ci-dessous :

exp = re.compile (r"""
CPUsTemp:
s*([+-]?d+.?d*)
.*n
BoardsTemp:
n
s*([+-]?d+.?d*)
.*n
RemotesTemp:
n
s*([+-]?d+.?d*)
""", re.VERBOSE + re.MULTILINE)

print exp.search (data, re.MULTILINE).groups()

Merci encore