Re : Comment utiliser la substitution Regex ?Il ne peut pas apprendre ces techniques avancées dans un guide de script.
Re : Comment utiliser la substitution Regex ?Merci!
Il est difficile de faire de bons exemples pour certaines fonctionnalités de regex. C'est un bon exemple de lookaround. Je pense que je pourrais le faire sans détour, mais ce serait plus compliqué. @shannon_conners pour l'équipe de doc : utiliser le positif et le négatif, devant et derrière, ensemble, c'est ce qui le rend compact et expressif (avec un commentaire). C'est une situation inhabituelle, pas une utilisation courante.
Re : Comment utiliser la substitution Regex ?Merci Craig!
J'aimerais vous poser une question sur l'application sous-jacente :
Je veux utiliser JSL pour résoudre plus d'utilisations, je ne peux pas utiliser python et d'autres outils.
Bien sûr, j'ai appris tout le code JSL des nombreux experts de cette communauté.
Ma demande est précisément :
comment restaurer le texte binaire au format protobuf (Google Protocol Buffe) en texte JMP ues JSL.
Re : Comment utiliser la substitution Regex ?
Merci!
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 : Comment utiliser la substitution Regex ?Re : Comment utiliser la substitution Regex ?Intéressant https://developers.google.com/protocol-buffers/docs/overview
Il semble que vous ayez deux choix : écrire le vôtre https://github.com/protocolbuffers/protobuf/blob/master/docs/third_party.md qui fonctionnerait alors pour de nombreux protocoles,
ou, plus facile et plus difficile,
choisissez-en un existant et traduisez-le. Je ne l'ai pas regardé, mais je pourrais essayer de commencer avec une version JAVA et de la traduire en JSL. Mais ensuite, vous devez répéter la traduction pour le protocole suivant.
Ce serait un projet plutôt cool de faire un traducteur. Je n'envisage pas de le faire.
Re : Comment utiliser la substitution Regex ?Merci beaucoup Craig!
Je sais que c'est un travail très difficile. Merci d'avoir écrit un cadre général, je vais essayer d'apprendre plus de connaissances à modifier. Merci pour vos efforts.
Re : Comment utiliser la substitution Regex ?utiliser deux déclarations. J'ai ajouté quelques caractères de problème supplémentaires à votre exemple...
txt = "d试1(-是2^3([a]文/字789(+内\c容4$3";
step1 = Regex( txt, "\(", "\!n", globalreplace );
step2 = Regex( step1, "[-+/\\^$[\]a-zA-Z]", "", globalreplace );
</CODE>Le (doit être regex-échappé pour l'étape 1. La nouvelle ligne est échappée JSL.</P>
<P><CODE class=" language-jsl">Pour l'étape 2, la syntaxe du [...] est compliquée :
- commencer par le - parce que sans caractère principal, il ne peut pas y avoir de plage comme az. (Sinon, il a besoin d'un regex-escape, \- )
- le \ doit être regex-échappé
- le ] doit être regex-échappé
Veillez à ne pas écrire accidentellement l'échappement JSL \[ qui modifie la façon dont JSL interprète les chaînes. Cela est susceptible de se produire lorsque vous travaillez avec des jeux de caractères dans [...] si vous ne savez pas que ce sera un problème.
Remarquez la séquence [\]. Ce n'est pas un jeu de caractères.Ce sont 2 caractères qui sont dans un jeu de caractères.
Comment utiliser la substitution Regex ?Remplace le "(" spécifié par un caractère de saut de ligne et supprime tous les caractères non chinois et non numériques.
d试1(-是23(a文字789(+内c容4$3

txt="d试1(-是23(a文字789(+内c容4$3";
na=Regex(txt, ?? );
Merci!
Modélisation statistique avancéeRe : Comment utiliser la substitution Regex ?Merci Craige!
Je vais juste utiliser EmEditor pour remplacer
Re : Comment utiliser la substitution Regex ?
Merci Craige!
Si je veux aller plus loin dans cette resubstitution : insérer des tabulations entre les caractères chinois et les données (mettre les caractères chinois du texte original à gauche et les chiffres à droite), pour obtenir un tableau permettant de saisir le résultat de la substitution directement dans le JMP :
Comment devez-vous changer le code ?

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 : Comment utiliser la substitution Regex ?Ceci est un exemple de regard négatif derrière et de regard positif vers l'avant, lookaround . L'étape 3 utilise les deux.
(?
correspond à un seul caractère qui n'est pas un chiffre juste avant la position actuelle de longueur nulle.
(?=\d)
correspond à un seul caractère qui est un chiffre juste après la position actuelle de longueur nulle.
Le caractère de tabulation est inséré dans la position de longueur nulle pour séparer le non-chiffre du chiffre.
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();">onglets champs séparés</SPAN></SPAN></P>Re : Comment utiliser la substitution Regex ?Merci Craig!
Regardez le code que vous écrivez, un vrai plaisir !