J'ai besoin d'aide pour re module. J'ai modèle:Python: regex: find si existe, else ignore
pattern = re.compile('''first_condition\((.*)\)
extra_condition\((.*)\)
testing\((.*)\)
other\((.*)\)''', re.UNICODE)
C'est ce qui se passe si je lance regex sur le texte suivant:
text = '''first_condition(enabled)
extra_condition(disabled)
testing(example)
other(something)'''
result = pattern.findall(text)
print(result)
[('enabled', 'disabled', 'example', 'something')]
Mais si une ou deux lignes ont été manquées, les retours regex liste vide. Par exemple. mon texte est:
text = '''first_condition(enabled)
other(other)'''
Ce que je veux:
[('enabled', '', '', 'something')]
je pourrais le faire dans plusieurs commandes, mais je pense que ce sera plus lent que de le faire dans un regex. Le code original utilise sed, donc c'est très rapide. Je pourrais le faire en utilisant sed, mais j'ai besoin d'une méthode multi-plateforme pour le faire. Est-il possible de faire? Tnanks!
P.S. Il sera également très bien si séquence de chaînes sera libre, non fixé:
text = '''other(other)
first_condition(enabled)'''
doit retourner absolument le même:
[('enabled', '', '', 'something')]
Voulez-vous vraiment que le résultat soit une liste contenant un seul tuple? –
@ Markarkers: non, une seule liste est encore mieux. – ghostmansd
Ou un seul tuple, non nécessaire. – ghostmansd