Comment renvoyer tous les résultats correspondants à partir de Regex ?Comment puis-je renvoyer tous les résultats d'une recherche Regex ?
J'utilise 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.
Automatisation et scriptsAccès aux donnéesWindowsRe : Comment renvoyer tous les résultats correspondants à partir de Regex ?La fonction Correspondance Regex() pourrait fonctionner.
Re : Comment renvoyer tous les résultats correspondants à partir de Regex ?Merci pour votre contribution. Regex Match() ne renvoie toujours pas tous les résultats. Du moins, pas de la manière dont je l'ai écrit.
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 );Re : Comment renvoyer tous les résultats correspondants à partir de Regex ?À ma connaissance, l'utilisation de Regex (ou de Regex Match) ne suffit pas pour le moment. Ajoutez l'option Regex Match() pour trouver toutes les occurrences non superposées du motif . Vous pouvez utiliser Python, mais aussi JSL avec une boucle.
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^"};
ou l'option beaucoup plus compliquée de la correspondance de motifs « propre » de JMP Guide de script > Types de données > Correspondance de motifs
Re : Comment renvoyer tous les résultats correspondants à partir de Regex ?Merci!
Re : Comment renvoyer tous les résultats correspondants à partir de Regex ?En utilisant la fonction Word() de JMP ainsi que la méthodologie de Jarmo, on peut également résoudre le problème.
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"};