Sagen wir, ich mit Schlüssel/Wert-Paare ein Zeichen-Array haben:Kann Schlüssel/Wert-Paare in einer Struktur regexp zurückgeben?
ch = sprintf('name: John\nsex: M\n')
ch =
'name: John
sex: M
'
Dies ist nur ein Beispiel. Die tatsächlichen Daten sind in einer Datei und haben viele Paare. Ich kann regexp
verwenden Token zu bekommen, dann eine Verwendung für Schleife, sie zu einer Struktur zuzuordnen:
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'
Gibt es einen einfacheren Weg, dies zu erreichen, wie regexp(ch, expr, 'names')
mit?
Kennen Sie die Schlüssel im Voraus? Werden sie immer "Name" und "Sex" sein? – informaton
Wenn wir _for_ loop vermeiden, kann dies möglicherweise die Leistung verbessern. –
@informaton Ich kenne keine Schlüssel im Voraus. Aus der regexp-Dokumentation scheint es, dass bekannte Schlüssel benötigt werden. –