Disons que j'ai un tableau de caractères avec des paires clé/valeur:Peut regexp retourner des paires clé/valeur dans une structure?
ch = sprintf('name: John\nsex: M\n')
ch =
'name: John
sex: M
'
Ceci est juste un échantillon. Les données réelles sont dans un fichier et ont plusieurs paires. Je peux utiliser regexp
pour obtenir des jetons, puis utiliser une boucle pour les affecter à une structure:
lns = regexp(ch, '(\w*):\s(.*?)\n', 'tokens');
for i = 1:numel(lns)
myStruct.(lns{i}{1}) = lns{i}{2};
end
myStruct =
struct with fields:
name: 'John'
sex: 'M'
est-il un moyen plus simple d'y parvenir, comme l'utilisation regexp(ch, expr, 'names')
?
Connaissez-vous les clés à l'avance? Autrement dit, seront-ils toujours «nom» et «sexe»? – informaton
Si nous évitons _for_ loop, cela peut potentiellement améliorer les performances au moins. –
@informaton Je ne connais pas les clés à l'avance. De la documentation regexp, il semble que les clés connues sont nécessaires. –