Ri: Come si usa la sostituzione Regex?Non può apprendere queste tecniche avanzate in una guida agli script.
Ri: Come si usa la sostituzione Regex?Grazie!
È difficile fare buoni esempi per alcune funzionalità in regex. Questo è un buon esempio per lookaround. Penso che potrei farlo senza guardarmi intorno, ma sarebbe più complicato. @shannon_conners per il team doc: usare positivo e negativo, avanti e indietro, insieme, è ciò che rende questo compatto ed espressivo (con un commento). È una situazione insolita, non un uso comune.
Ri: Come si usa la sostituzione Regex?Grazie Craig!
Vorrei farti una domanda sull'applicazione sottostante:
Voglio usare JSL per risolvere un maggiore utilizzo, non posso usare Python e altri strumenti.
Ovviamente ho imparato tutto il codice JSL dai molti esperti di questa comunità.
La mia richiesta è nello specifico:
come ripristinare il testo binario in formato protobuf (Google Protocol Buffe) in testo JMP ues JSL.
Ri: Come si usa la sostituzione Regex?
Grazie!
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;
Ri: Come si usa la sostituzione Regex?Ri: Come si usa la sostituzione Regex?Interessante https://developers.google.com/protocol-buffers/docs/overview
Sembra che tu abbia due scelte: scrivere la tua https://github.com/protocolbuffers/protobuf/blob/master/docs/third_party.md che funzionerebbe quindi per molti protocolli,
o, più facile e più difficile,
scegline uno esistente e traduci. Non l'ho guardato, ma potrei provare a iniziare con una versione JAVA e tradurla in JSL. Ma poi puoi ripetere la traduzione per il protocollo successivo.
Sarebbe un bel progetto fare un traduttore. Non ho intenzione di farlo.
Ri: Come si usa la sostituzione Regex?Grazie mille Craig!
So che è un lavoro molto difficile. Grazie per aver scritto un quadro generale, cercherò di apprendere più conoscenze da modificare. Grazie per i tuoi sforzi.
Ri: Come si usa la sostituzione Regex?utilizzare due affermazioni. Ho aggiunto alcuni caratteri problematici in più al tuo esempio ...
txt = "d试1(-是2^3([a]文/字789(+内\c容4$3";
step1 = Regex( txt, "\(", "\!n", globalreplace );
step2 = Regex( step1, "[-+/\\^$[\]a-zA-Z]", "", globalreplace );
</CODE>Il ( deve essere sottoposto a escape regex per il passaggio 1. La nuova riga è con escape JSL.</P>
<P><CODE class=" language-jsl">Per il passaggio 2, la sintassi del [...] è complicata:
- inizia con il - perché senza un carattere principale non può essere un intervallo come az. (Altrimenti ha bisogno di una regex-escape, \- )
- \ deve essere sottoposto a escape regex
- il] deve essere sottoposto a escape regex
Fai attenzione a non scrivere accidentalmente l'escape JSL \[ che cambia il modo in cui JSL interpreta le stringhe. È probabile che ciò accada quando si lavora con i set di caratteri in [...] se non lo sai sarà un problema.
Notare la sequenza [\]. Non è un set di caratteri.Sono 2 caratteri che si trovano in un set di caratteri.
Come si usa la sostituzione Regex?Sostituisce il "(" specificato con un carattere di nuova riga e rimuove tutti i caratteri non cinesi e non numerici.
d试1(-是23(a文字789(+内c容4$3

txt="d试1(-是23(a文字789(+内c容4$3";
na=Regex(txt, ?? );
Grazie!
Modellazione statistica avanzataRe: Come si utilizza la sostituzione Regex?Grazie Craige!
Utilizzerò semplicemente EmEditor per sostituire
Ri: Come si utilizza la sostituzione Regex?
Grazie Craige!
Se voglio fare un ulteriore passo avanti con questa sostituzione: inserisci le tabulazioni tra i caratteri cinesi e i dati (imposta i caratteri cinesi nel testo originale a sinistra e i numeri a destra), per ottenere una tabella in cui sia possibile inserire il risultato della sostituzione direttamente nel JMP:
Come è necessario modificare il codice?

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: Come si utilizza la sostituzione Regex?Questo è un esempio di sguardo negativo indietro e sguardo positivo avanti, lookaround . Il passaggio 3 utilizza entrambi.
(?
corrisponde a un singolo carattere che non sia una cifra subito prima della posizione corrente di lunghezza zero.
(?=\d)
corrisponde a un singolo carattere che è una cifra subito dopo la posizione corrente di lunghezza zero.
Il carattere di tabulazione viene inserito nella posizione di lunghezza zero per separare la non cifra dalla cifra.
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();">le schede separano i campi</SPAN></SPAN></P>R: Come si usa la sostituzione Regex?Grazie Craig!
Guarda il codice che scrivi, è una vera goduria!