Betreff: Wie verwende ich die Regex-Ersetzung?Es kann diese fortgeschrittenen Techniken nicht in einem Skriptleitfaden lernen.
Betreff: Wie verwende ich die Regex-Ersetzung?Danke!
Es ist schwierig, gute Beispiele für einige Funktionen in Regex zu machen. Dies ist ein gutes Beispiel für Lookaround. Ich denke, ich könnte es ohne Lookaround tun, aber es wäre komplizierter. @shannon_conners Für das Doc-Team: Die gemeinsame Verwendung von Positiv und Negativ, Vorne und Hinten macht dies kompakt und ausdrucksstark (mit einem Kommentar). Es ist eine ungewöhnliche Situation, kein Mainstream-Gebrauch.
Betreff: Wie verwende ich die Regex-Ersetzung?Danke Craige!
Ich möchte Ihnen eine Frage zur zugrunde liegenden Anwendung stellen:
Ich möchte JSL verwenden, um mehr Nutzung zu lösen, kann Python und andere Tools nicht verwenden.
Natürlich habe ich den gesamten JSL-Code von den vielen Experten in dieser Community gelernt.
Meine Bitte lautet konkret:
wie man Protobuf (Google Protocol Buffe)-formatierten Binärtext in JMP-Text über JSL wiederherstellt.
Betreff: Wie verwende ich die Regex-Ersetzung?
Danke!
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;
Betreff: Wie verwende ich die Regex-Ersetzung?Betreff: Wie verwende ich die Regex-Ersetzung?Interessant https://developers.google.com/protocol-buffers/docs/overview
Es sieht so aus, als hätten Sie zwei Möglichkeiten: Schreiben Sie Ihre eigene https://github.com/protocolbuffers/protobuf/blob/master/docs/third_party.md was dann für viele Protokolle funktionieren würde,
oder, leichter und schwerer,
Wählen Sie eine vorhandene aus und übersetzen Sie sie. Ich habe es mir nicht angesehen, aber ich könnte versuchen, mit einer JAVA-Version zu beginnen und diese in JSL zu übersetzen. Aber dann müssen Sie die Übersetzung für das nächste Protokoll wiederholen.
Es wäre ein ziemlich cooles Projekt, einen Übersetzer zu machen. Das habe ich nicht vor.
Betreff: Wie verwende ich die Regex-Ersetzung?Vielen Dank, Craige!
Ich weiß, dass es ein sehr schwieriger Job ist. Vielen Dank, dass Sie einen allgemeinen Rahmen geschrieben haben. Ich werde versuchen, mehr Wissen zum Ändern zu erlernen. Danke dir für deine Bemühungen.
Betreff: Wie verwende ich die Regex-Ersetzung?Verwenden Sie zwei Anweisungen. Ich habe Ihrem Beispiel einige zusätzliche Problemzeichen hinzugefügt ...
txt = "d试1(-是2^3([a]文/字789(+内\c容4$3";
step1 = Regex( txt, "\(", "\!n", globalreplace );
step2 = Regex( step1, "[-+/\\^$[\]a-zA-Z]", "", globalreplace );
</CODE>Das ( muss für Schritt 1 mit Regex-Escapezeichen versehen werden. Der Zeilenumbruch ist JSL-escaped.</P>
<P><CODE class=" language-jsl">Für Schritt 2 ist die Syntax von [...] kompliziert:
- Beginnen Sie mit dem - denn ohne ein führendes Zeichen kann es kein Bereich wie az sein. (Andernfalls ist ein Regex-Escape erforderlich, \- )
- Das \ muss mit einem regulären Ausdruck maskiert werden
- Das ] muss mit einem Regex-Escapezeichen versehen werden
Achten Sie darauf, nicht versehentlich den JSL-Escape \[ zu schreiben, der die Art und Weise ändert, wie JSL Strings interpretiert. Dies kann bei der Arbeit mit Zeichensätzen in [...] passieren, wenn Sie nicht wissen, dass es ein Problem sein wird.
Beachten Sie die Reihenfolge [\]. Es handelt sich nicht um einen Zeichensatz.Es handelt sich um 2 Zeichen, die in einem Zeichensatz enthalten sind.
Wie verwende ich die Regex-Substitution?Ersetzt das angegebene „(“ durch ein Zeilenumbruchzeichen und entfernt alle nicht-chinesischen und nicht numerischen Zeichen.
d试1(-是23(a文字789(+内c容4$3

txt="d试1(-是23(a文字789(+内c容4$3";
na=Regex(txt, ?? );
Danke!
Erweiterte statistische ModellierungBetreff: Wie verwende ich die Regex-Ersetzung?Danke, Craige!
Ich verwende zum Ersetzen einfach EmEditor
Betreff: Wie verwende ich Regex-Ersetzung?
Danke, Craige!
Wenn ich diese Ersetzung noch einen Schritt weiterführen möchte: Füge zwischen den chinesischen Schriftzeichen und den Daten Tabulatoren ein (setze die chinesischen Schriftzeichen im Originaltext nach links und die Zahlen nach rechts), um eine Tabelle zu erhalten, die das Ergebnis der Ersetzung direkt in JMP eingeben kann:
Wie muss der Code geändert werden?

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;
Betreff: Wie verwende ich Regex-Ersetzung?Dies ist ein Beispiel für einen negativen Blick nach hinten und einen positiven Blick nach vorn, lookaround . Schritt 3 verwendet beides.
(?
passt zu einem einzelnen Zeichen, das keine Ziffer ist, direkt vor der aktuellen Position mit der Länge Null.
(?=\d)
passt zu einem einzelnen Zeichen, das eine Ziffer direkt nach der aktuellen Position mit der Länge Null ist .
Das Tabulatorzeichen wird in die Position mit der Länge Null eingefügt, um die Nicht-Ziffer von der Ziffer zu trennen.
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();">Tabulatoren trennen Felder</SPAN></SPAN></P>Betreff: Wie verwende ich Regex-Ersetzung?Danke Craig!
Schauen Sie sich den Code an, den Sie schreiben, es macht wirklich Spaß!