¿Cómo devolver todos los resultados coincidentes de Regex?¿Cómo puedo devolver todos los resultados de una búsqueda Regex?
Estoy usando 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.
Automatización y scriptingAcceso a datosVentanasRe: ¿Cómo devolver todos los resultados coincidentes de Regex?La función Coincidencia de expresiones regulares() podría funcionar.
Re: ¿Cómo devolver todos los resultados coincidentes de Regex?Gracias por la información. Regex Match() aún no devuelve todos los resultados. Al menos no como lo escribí.
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: ¿Cómo devolver todos los resultados coincidentes de Regex?Que yo sepa, usar expresiones regulares (o coincidencias de expresiones regulares) no es posible actualmente. Añade una bandera a la función "Regex Match()" para encontrar todas las ocurrencias no superpuestas del patrón . Puedes usar Python, pero también puedes usar JSL con un bucle.
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^"};
o la opción mucho más complicada de coincidencia de patrones "propios" de JMP Guía de scripting > Tipos de datos > Coincidencia de patrones
Re: ¿Cómo devolver todos los resultados coincidentes de Regex?¡Gracias!
Re: ¿Cómo devolver todos los resultados coincidentes de Regex?Utilizando la función Word() de JMP junto con la metodología de Jarmo también se puede resolver el problema.
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"};