J'ai actuellement la regex '([^: ]+):([^ ]+)?'
, qui, quand donné une chaîne comme This is a correct:test msg: a b c bool:y
renvoie [('correct', 'test'), ('msg', ''), ('bool', 'y')]
(en utilisant pythons re.findall
).Regex a: b c d a: b
Je veux réellement revenir quelque chose comme [('correct', 'test'), ('msg', 'a b c'), ('bool', 'y')]
. Comment puis-je forcer regex regarder à l'intérieur du deuxième morceau, et voir s'il y a un :
en elle?
Pourquoi '[('correcte', 'test), (' msg ' 'ab c'), ('bool', 'y')]' et non '[('correcte',' test '), (' msg ' 'a'), ('bool bc', y')] '? Autrement dit, comment si les regex que vous voulez savoir l'un et pas l'autre? –
On dirait que vous devez faire un test avant négatif pour vous assurer que le mot que vous consommez ne fait pas partie de la 1ère position. –