Wie werden alle übereinstimmenden Ergebnisse von Regex zurückgegeben?Wie kann ich alle Ergebnisse einer Regex-Suche zurückgeben?
Ich verwende JMP 18.1.2.
Names Default To Here( 1 );
string = "I am looking for ^this^, ^that^, and sometimes ^those^.";
result = Regex( string, "\^([^\n]*?)\^" ); // Only returns first match.
Automatisierung und SkriptingDatenzugriffWindowsBetreff: Wie gebe ich alle übereinstimmenden Ergebnisse von Regex zurück?Die Regex-Übereinstimmung() -Funktion könnte funktionieren.
Betreff: Wie gebe ich alle übereinstimmenden Ergebnisse von Regex zurück?Danke für den Hinweis. Regex Match() liefert immer noch nicht alle Ergebnisse. Zumindest nicht so, wie ich es geschrieben habe.
Names Default To Here( 1 );
string = "I am looking for ^this^, ^that^, and sometimes ^those^.";
result = Regex( string, "\^([^\n]*?)\^" ); // Returns "^this^".
Show( result );
results = Regex Match( string, "\^([^\n]*?)\^" ); // Returns {"^this^", "this"}.
Show( results );Betreff: Wie gebe ich alle übereinstimmenden Ergebnisse von Regex zurück?Meines Wissens nach ist die Verwendung von Regex (oder Regex Match) allein derzeit nicht möglich. Fügen Sie ein Flag zu Regex Match() hinzu, um alle nicht überlappenden Mustervorkommen zu finden . Sie könnten Python verwenden, aber auch JSL mit einer Schleife.
Names Default To Here(1);
string = "I am looking for ^this^, ^that^, and sometimes ^those^.";
result = Regex(string, "\^([^\n]*?)\^"); // Only returns first match.
matches = {};
While(!Is Missing(result = Regex(string, "\^([^\n]*?)\^")),
Substitute Into(string, result, "");
Insert Into(matches, result);
);
show(matches); // matches = {"^this^", "^that^", "^those^"};
oder die wesentlich kompliziertere Option des JMP-eigenen Musterabgleichs Scripting Guide > Datentypen > Musterabgleich
Betreff: Wie gebe ich alle übereinstimmenden Ergebnisse von Regex zurück?Danke!
Betreff: Wie gebe ich alle übereinstimmenden Ergebnisse von Regex zurück?Mit der Word()-Funktion von JMP und der Methodik von Jarmo lässt sich das Problem ebenfalls lösen.
Names Default To Here(1);
string = "I am looking for ^this^, ^that^, and sometimes ^those^.";
result = Regex(string, "\^([^\n]*?)\^"); // Only returns first match.
matches = {};
While(!Is Missing(result = word(2,string, "^")),
Substitute Into(string, "^"||result||"^", "");
Insert Into(matches, result);
);
show(matches); // matches = {"^this^", "^that^", "^those^"};
matches = {"this", "that", "those"};