Re: ¿Cómo uso la sustitución Regex?No puede aprender estas técnicas avanzadas en una guía de script.
Re: ¿Cómo uso la sustitución Regex?¡Gracias!
Es difícil hacer buenos ejemplos para algunas funciones en expresiones regulares. Este es un buen ejemplo para mirar alrededor. Creo que podría hacerlo sin mirar alrededor, pero sería más complicado. @shannon_conners para el equipo de doc: usar positivo y negativo, delante y detrás, juntos, es lo que hace que esto sea compacto y expresivo (con un comentario). Es una situación inusual, no un uso generalizado.
Re: ¿Cómo uso la sustitución Regex?Gracias Craig!
Me gustaría hacerle una pregunta sobre la aplicación subyacente:
Quiero usar JSL para resolver más uso, no puedo usar python y otras herramientas.
Por supuesto, aprendí todo el código JSL de los muchos expertos de esta comunidad.
Mi petición es concretamente:
cómo restaurar texto binario con formato protobuf (Google Protocol Buffe) a texto JMP ues JSL.
Re: ¿Cómo uso la sustitución Regex?
¡Gracias!
h = [=> ];
u = "http://ds.m.emoney.cn/pick";
h["X-Protocol-Id"] = "8900";
h["X-Request-Id"] = "null";
b = Char To Blob( "~0A~0D~E5~BD~93~E6~97~A5~42~E7~82~B9~E8~82~A1~10~F2~DF~D2~09", "ascii~hex" );
rs = New HTTP Request( URL( u ), Method( "POST" ), JSON( b ), Headers( h ) );
rr = rs << Send;
Re: ¿Cómo uso la sustitución Regex?Re: ¿Cómo uso la sustitución Regex?Interesante https://developers.google.com/protocol-buffers/docs/overview
Parece que tienes dos opciones: escribe la tuya https://github.com/protocolbuffers/protobuf/blob/master/docs/third_party.md que luego funcionaría para muchos protocolos,
o, más fácil y más difícil,
elija uno existente y traduzca. No lo he mirado, pero podría intentar comenzar con una versión JAVA y traducirla a JSL. Pero luego puedes repetir la traducción para el siguiente protocolo.
Sería un proyecto genial hacer un traductor. No planeo hacer eso.
Re: ¿Cómo uso la sustitución Regex?¡Muchas gracias Craige!
Sé que es un trabajo muy difícil. Gracias por escribir un marco general, intentaré aprender más conocimientos para modificar. Gracias por tus esfuerzos.
Re: ¿Cómo uso la sustitución Regex?usar dos declaraciones. Agregué algunos caracteres problemáticos adicionales a tu ejemplo...
txt = "d试1(-是2^3([a]文/字789(+内\c容4$3";
step1 = Regex( txt, "\(", "\!n", globalreplace );
step2 = Regex( step1, "[-+/\\^$[\]a-zA-Z]", "", globalreplace );
</CODE>El ( debe tener escape de expresiones regulares para el paso 1. La nueva línea tiene escape JSL.</P>
<P><CODE class=" language-jsl">Para el paso 2, la sintaxis del [...] es complicada:
- comience con - porque sin un carácter principal no puede ser un rango como az. (De lo contrario, necesita un escape de expresiones regulares, \- )
- el \ necesita ser regex-escapado
- el ] necesita ser regex-escapado
Tenga cuidado de no escribir accidentalmente JSL-escape \[ que cambia la forma en que JSL interpreta las cadenas. Es probable que esto suceda cuando se trabaja con conjuntos de caracteres en [...] si no sabe que será un problema.
Observe la secuencia [\]. No es un juego de caracteres.Se trata de 2 caracteres que están en un juego de caracteres.
¿Cómo uso la sustitución Regex?Reemplaza el "(" especificado con un carácter de nueva línea y elimina todos los caracteres que no sean chinos ni numéricos.
d试1(-是23(a文字789(+内c容4$3

txt="d试1(-是23(a文字789(+内c容4$3";
na=Regex(txt, ?? );
¡Gracias!
Modelado Estadístico AvanzadoRe: ¿Cómo uso la sustitución de expresiones regulares?¡Gracias Craige!
Usaré EmEditor para reemplazar
Re: ¿Cómo uso la sustitución de expresiones regulares?
¡Gracias Craige!
Si quiero llevar esta sustitución un paso más allá: insertar tabulaciones entre los caracteres chinos y los datos (establecer los caracteres chinos en el texto original a la izquierda y los números a la derecha), para lograr una tabla que pueda ingresar el resultado. de la sustitución directamente en el JMP:
¿Cómo necesitas cambiar el código?

txt = "d试1(-是2^3([a]文/字789(+内\c容4$3";
step1 = Regex( txt, "\(", "\!n", globalreplace );//??
step2 = Regex( step1, "[-+/\\^$[\]a-zA-Z]", "", globalreplace );//??
s = N Items( step2 );
dt = New Table( "A", Add Rows( s ), New Column( "txt", Character, "Nominal" ), New Column( "num" ) );
dt[0, 0] = step2;
Re: ¿Cómo uso la sustitución de expresiones regulares?Este es un ejemplo de mirada negativa hacia atrás y mirada positiva hacia adelante, mirada alrededor . El paso 3 es usar ambos.
(?
coincide con un solo carácter que no es un dígito justo antes de la posición actual de longitud cero.
(?=\d)
coincide con un solo carácter que es un dígito justo después de la posición actual de longitud cero.
El carácter de tabulación se inserta en la posición de longitud cero para separar lo que no es un dígito del dígito.
txt = "d试1(-是2^3([a]文/字789(+内\c容4$3";
// change paren to newline...
step1 = Regex( txt, "\(", "\!n", globalreplace );
// remove unwanted characters - + / \ ^ $ [ ] a..z A..Z
step2 = Regex( step1, "[-+/\\^$[\]a-zA-Z]", "", globalreplace );
// insert tab when character before is not a digit and character after is a digit
step3 = Regex( step2, "(?<!--\d)(?=\d)", "\!t", globalreplace );
// add header
step4 = "aaa\!tbbb\!n" || step3;
// import the string without making a file on disk
Open( Char To Blob( step4 ), "text" );</CODE-->
<P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="tabs separate fields" style="width: 222px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="tabs separate fields" style="width: 222px;"><span class="lia-inline-image-display-wrapper" image-alt="tabs separate fields" style="width: 222px;"><img src="https://us.v-cdn.net/6038925/uploads/images/49689i961EE5E9BA544965/Capture.PNG" role="button" title="Capture.PNG" alt="tabs separate fields" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">tabs separate fields</span></span><SPAN class="lia-inline-image-caption" onclick="event.preventDefault();">tabs separate fields</SPAN></SPAN><SPAN class="lia-inline-image-caption" onclick="event.preventDefault();">pestañas campos separados</SPAN></SPAN></P>Re: ¿Cómo uso la sustitución de expresiones regulares?Gracias Craig!
¡Mira el código que escribes, un verdadero disfrute!