J'ai une liste de variables:Trouver plusieurs regex dans chaque ligne et sauter le résultat si l'un des regex ne correspond pas à
variables = ['VariableA', 'VariableB','VariableC']
que je vais rechercher, ligne par ligne
ifile = open("temp.txt",'r')
d = {}
match = zeros(len(variables))
for line in ifile:
emptyCells=0
for i in range(len(variables)):
regex = r'('+variables[i]+r')[:|=|\(](-?\d+(?:\.\d+)?)(?:\))?'
pattern_variable = re.compile(regex)
match[i] = re.findall(pattern_variable, line)
if match[j] == []:
emptyCells = emptyCells+1
if emptyCells == 0:
for k, v in match[j]:
d.setdefault(k, []).append(v)
L'exigence est que je ne garderai que les lignes où tous les regex correspondent!
Je veux collecter tous les résultats pour chaque variable dans un dictionnaire où le nom de la variable est la clé, et la valeur devient une liste de tous les résultats.
Le code fourni est seulement ce que j'ai trouvé à ce jour, et ne fonctionne pas encore parfaitement ...
u peut utiliser: cat file | grep regexp1 | grep regexp2 | ... – Drakosha
Il est supposé fonctionner dans un environnement Windows, donc en fonction des utilitaires unix, je ne pense pas ... – user265978
Votre code fait référence à une variable 'j' sans jamais définir' j'. Est-ce que 'j' a été défini ailleurs ou est-ce censé être' i'? Précisez s'il vous plaît. – unutbu