Wie kann ich einen unbekannten String in einem Array finden? | finding an unknown string in an string array

2 vues (au cours des 30 derniers jours)
Ich möchte in einem 127200 x 19 string Array einen bestimmten String finden.
Wie dieser genau aussieht weiß ich nicht, ich weiß nur, dass dieser mit einem " * " beginnt. In anderen Sprachen gibt es ja verschiedene Möglichkeiten einen unbekannten String zusammenzusetzen.
Beispielsweise mit:
" *" & *
Kann ich sowas auch in Matlab machen?

Réponse acceptée

Konrad
Konrad le 27 Sep 2021
Hi Patrick
wenn ich richtig verstehe möchtest Du alle strings im array finden die mit * anfangen?! Das kannst Du so machen:
strarr = ["123" "456" "*789"; "abc" "*def" "ghi"]
strarr = 2×3 string array
"123" "456" "*789" "abc" "*def" "ghi"
idx = startsWith(strarr,'*') % das sind die Indices der strings die mit * anfangen
idx = 2×3 logical array
0 0 1 0 1 0
strarr(idx) % und das die strings.
ans = 2×1 string array
"*def" "*789"
LG, Konrad
  3 commentaires
Konrad
Konrad le 27 Sep 2021
Für mehr Flexibilität nehme ich immer regexp(), Regular expressions sind aber halt auch etwas komplexer...
Um ein * an 2. Stelle zu finden, wobei an 1. Stelle und ab der 3. Stelle * alles stehen darf, könnte die regex so aussehen:
'^.\*.*'
also um die Indices zu bekommen:
idxCell = regexp(strarr,'^.\*.*','once');
idx = ~cellfun(@isempty,idxCell);
Patrick Benz
Patrick Benz le 27 Sep 2021
etwas komplexer ist gut ^^
Noch mal vielen Dank, aktuell sollte ich mit dem ersten Fall hinkommen, aber so weiß ich schon mal für die Zukunft Bescheid.

Connectez-vous pour commenter.

Plus de réponses (0)

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!