¿Cómo usar jsl para probar si una cadena contiene solo A ~ Z y 0 ~ 9?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />¿Cómo usar jsl para probar si una cadena contiene solo A ~ Z y 0 ~ 9?
mis datos contendrán solo A ~ Z y 0 ~ 9, pero cuando 1 o unos pocos bits cambian, entonces no hay caracteres imprimibles.
¡Muchas gracias de antemano!
Re: ¿cómo usar jsl para probar si una cadena contiene solo A~Z y 0~9?¡Gracias! El regex101 ayuda a comprender el código que compartió.
Re: ¿cómo usar jsl para probar si una cadena contiene solo A~Z y 0~9?Si solo necesita saber encontrado o no encontrado, es bastante simple con una expresión regular, si también necesita las coincidencias, debe recorrer la cadena mientras sustituye las coincidencias encontradas. Además, si necesita probar su Regex, sugiero expresión regular101
Names Default To Here(1);
original_txt1 = " today I m at FL12, tomorrow I will be at FL 103";
original_txt2 = " today I m at FLb12, tomorrow I will be at FL a123";
// if you only need to know if there is a match combine regex with !IsMissing()
found1 = !Is Missing(Regex(original_txt1, "FL\s?\d+"));
found2 = !Is Missing(Regex(original_txt2, "FL\s?\d+"));
show(found1, found2);
// if you also need the matches loop over the string
matches = {};
While(!Is Missing(rgx_match = Regex(original_txt1, "FL\s?\d+")),
Insert Into(matches, rgx_match);
Substitute Into(original_txt1, rgx_match, "");
);
show(matches);
Que yo sepa, JMP no puede realizar una búsqueda de expresiones regulares "global" con Regex Match () y he creado un elemento de lista de deseos para ello Agregue una bandera a Regex Match () para encontrar todas las ocurrencias de patrones que no se superponen ). Lo más probable es que puedas usar Coincidencia de patrones propia de JMP para hacer tareas como encontrar múltiples coincidencias, pero no me he molestado en aprenderlo. Aquí hay una buena publicación sobre eso La coincidencia de patrones
Re: ¿cómo usar jsl para probar si una cadena contiene solo A~Z y 0~9?Hola
Me pregunto si se pueden usar expresiones regulares en el texto.
Text = "hoy estoy en FL12, mañana estaré en FL102"
Tengo filas de texto que quiero averiguar si cada fila contiene FL + cualquier dígito, entonces sí, o imprima el FL + dígito. En este caso serán FL12 y FL103.
Si no Regex, ¿puede sugerir otra función?
Re: ¿cómo usar jsl para probar si una cadena contiene solo A~Z y 0~9?Gracias @pmroz por las instrucciones. Muy útil con algunos datos particularmente sucios.
Si alguien más necesita un ejemplo útil, intente lo siguiente:
If(
Regex( :"2nd"n, "^[A-Z]+$" ) == :"2nd"n, "Uppercase",
Regex( :"2nd"n, "^[a-z]+$" ) == :"2nd"n, "Lowercase",
Regex( :"2nd"n, "^[0-9]+$" ) == :"2nd"n, "Numbers",
Regex( :"2nd"n, "^[A-Z0-9]+$" ) == :"2nd"n, "Uppercase and numbers",
Regex( :"2nd"n, "^[a-z0-9]+$" ) == :"2nd"n, "lowercase and numbers",
Regex( :"2nd"n, "^[A-Za-z]+$" ) == :"2nd"n, "No numbers",
Regex( :"2nd"n, "^[A-Za-z0-9]+$" ) == :"2nd"n, "All characters",
Regex( :"2nd"n, "^[A-Za-z0-9]+$" ) != :"2nd"n,
"includes non alphanumeric characters"
)

Re: ¿cómo usar jsl para probar si una cadena contiene solo A~Z y 0~9?El ^ significa el comienzo de la cadena, el + significa que coincida con al menos un carácter y el $ significa el final de la cadena.
Para devolver un 1 o un 0, simplemente cambie Sí a 1 y No a 0:
Si ( expresión regular ( : Nombre ( "2º" ) , "^[a-zA-Z0-9]+$" ) == : Nombre ( "2º" ) , 1 , 0 )
Hay un montón de sitios web que explican las expresiones regulares por cierto.
Re: ¿cómo usar jsl para probar si una cadena contiene solo A~Z y 0~9?gracias por tu respuesta, PMroz.
¿Para qué ^ y +$?
¿Cómo puedo hacer que devuelva 1 o 0 para poder usarlo junto con otro algoritmo de comparación?
Re: ¿cómo usar jsl para probar si una cadena contiene solo A~Z y 0~9?Puede usar expresiones regulares para verificar esto.Cree una nueva columna que contenga la siguiente fórmula:
Si ( expresión regular ( : Nombre ( "2º" ) , "^[a-zA-Z0-9]+$" ) == : Nombre ( "2º" ) , "Sí" , "No" )
La nueva columna tendrá el valor "Sí" si es puramente alfanumérica, "No" en caso contrario.