Je ne pourrais pas sembler trouver un fil sur celui-ci, mais il semble que quelque chose qui devrait être assez simple. Im essayant d'utiliser regex pour rechercher une ligne dans une sortie pour un nombre 0-99, et faire une action, mais si le nombre est 100 alors il fera une action différente. Heres ce que j'ai essayé (version simplifiée):Python regex recherche gamme de nombres
OUTPUT = #Some command that will store the output in variable OUTPUT
OUTPUT = OUTPUT.split('\n')
for line in OUTPUT:
if (re.search(r"Rebuild status: percentage_complete", line)): #searches for the line, regardless of number
if (re.search("\d[0-99]", line)): #if any number between 0 and 99 is found
print"error"
if (re.search("100", line)): #if number 100 is found
print"complete"
Je l'ai essayé et il capte toujours l'erreur 100 et impressions.
Oui, j'ai essayé aussi, mais il va toujours imprimer l'erreur quand il trouve un 100 – bladexeon
@bladexeon: Le problème était que 100 était techniquement, une correspondance valide pour cette expression régulière (il correspondrait à la valeur de «10»). J'ai modifié l'expression pour inclure des limites de mot (le 'b)' 'pour faire face à cela. – npinti
Votre approche a eu le plus de sens, mais je ne pouvais pas faire fonctionner les limites. donc à la place j'ai fait: 'si re.search (" \ d {1,2} ", ligne) et non re.search (" 100 ", ligne):' Cela a semblé fonctionner. Merci pour l'aide! – bladexeon