¿Cómo obtener caracteres entre paréntesis dentro de una cadena?Hola a todos,
Tengo una cadena como la siguiente " [CDO600705010] [S 88ABCV AB IT] [C23204348IT] "
¿Sabes cómo colocar caracteres entre corchetes de apertura y cierre?
Por ejemplo:
CDO600705010
S 88ABCV AB IT
C23204348IT
Atentamente
Modelado estadístico avanzadoInvestigación de Consumidores y MercadosAcceso a los datosRe: ¿Cómo poner caracteres entre paréntesis dentro de una cadena?Definitivamente usaría Word() o Words() con este, pero hay un patrón de caracteres en JMP. Es bastante difícil de aprender y puede que tenga un uso un poco limitado en comparación con métodos más simples (no me he molestado en aprenderlo). Script modificado a partir de un script encontrado en Re: Extraer texto de una cadena (la publicación también tiene una explicación de la coincidencia)
Names Default To Here(1);
// see https://community.jmp.com/t5/Discussions/Extract-text-from-string/td-p/450420
txt = " [CDO600705010] [S 88ABCV A B IT] [C23204348IT] ";
sp = Pat Span("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 ");
found_list = {};
Pat Match(
txt,
"[" + sp >> match + ("]") + Pat Test(
Insert Into(found_list, match);
0;
)
);
show(found_list);
// found_list = {"CDO600705010", "S 88ABCV A B IT", "C23204348IT"};
Pero hacer coincidir varios corchetes podría ser un lugar donde podría verme usando patrones de caracteres.
Consulte también Guía de secuencias de comandos > Tipos de datos > Coincidencia de patrones
Re: ¿Cómo poner caracteres entre paréntesis dentro de una cadena?Word() es la función que todo usuario de JMP debería conocer.
Si aprende solo una función del Editor de fórmulas, Word() es la que
Re: ¿Cómo poner caracteres entre paréntesis dentro de una cadena?Me gusta el enfoque de @txnelson . Lo uso a menudo. ¡Las funciones de los personajes son útiles!
Aquí hay otro enfoque que utiliza Regex() en su lugar. No es una solución. Es una ilustración de cómo se puede analizar cada cadena. Muestro dos patrones de búsqueda, pero son posibles otros patrones. Me pregunto qué camino es más rápido, ya que podría ser una consideración con muchas condiciones.
Names Default to Here( 1 );
string = { "[CDO600705010]", "[S 88ABCV A B IT]", "[C23204348IT]" };
n = N Items( string );
For( s = 1, s <= n, s++,
Show(
Regex( string[s], "([\w\d\s]+)", "\1" );
);
);
For( s = 1, s <= n, s++,
Show(
Regex( string[s], "[^\-[\]]+" );
);
);
Re: ¿Cómo poner caracteres entre paréntesis dentro de una cadena?¡Asombroso! Apreciarlo Funciona como un milagro
Re: ¿Cómo poner caracteres entre paréntesis dentro de una cadena?s=" [CDO600705010] [S 88ABCV A B IT] [C23204348IT] ";
one = word(2,s,"[]");
show(one);
/*:
one = "CDO600705010";