回复:如何使用正則表達式替換?它無法在腳本指南中學習這些高級技術。
回复:如何使用正則表達式替換?謝謝!
很難為正則表達式中的某些功能提供好的示例。 這是環顧四周的一個很好的例子。 我想我可以在沒有環顧四周的情況下做到這一點,但它會更複雜。 @shannon_conners對於文檔團隊:同時使用正面和負面,前後,是使這個緊湊和富有表現力的原因(帶有評論)。 這是一種不尋常的情況,不是主流用法。
回复:如何使用正則表達式替換?謝謝克雷格!
我想問你一個關於底層應用的問題:
想用JSL解決更多的用法,不能用python等工具。
當然,我從這個社區的許多專家那裡學習了所有的 JSL 代碼。
我的要求具體是:
如何將 protobuf(Google Protocol Buffe)格式的二進製文本恢復為使用 JSL 的 JMP 文本。
回复:如何使用正則表達式替換?
謝謝!
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;
回复:如何使用正則表達式替換?回复:如何使用正則表達式替換?有趣的https://developers.google.com/protocol-buffers/docs/overview
看起來你有兩個選擇:自己寫https://github.com/protocolbuffers/protobuf/blob/master/docs/third_party.md這將適用於許多協議,
或者,更容易和更難,
選擇一個現有的並翻譯。 我沒有看過它,但我可能會嘗試從 JAVA 版本開始並將其轉換為 JSL。 但隨後您需要為下一個協議重複翻譯。
製作翻譯器將是一個非常酷的項目。 我不打算那樣做。
回复:如何使用正則表達式替換?非常感謝克雷奇!
我知道這是一項非常困難的工作。謝謝你寫了一個通用的框架,我會努力學習更多的知識來修改。感謝你付出的努力。
回复:如何使用正則表達式替換?使用兩個語句。 我在你的例子中添加了一些額外的問題字符......
txt = "d试1(-是2^3([a]文/字789(+内\c容4$3";
step1 = Regex( txt, "\(", "\!n", globalreplace );
step2 = Regex( step1, "[-+/\\^$[\]a-zA-Z]", "", globalreplace );
</CODE>( 需要對步驟 1 進行正則表達式轉義。 換行符是 JSL 轉義的。</P>
<P><CODE class=" language-jsl">對於step2,[...]的語法比較複雜:
- 以 - 開頭,因為沒有前導字符就不可能是像 az 這樣的範圍。 (否則它需要一個正則表達式轉義, \- )
- \ 需要正則表達式轉義
- ] 需要正則表達式轉義
注意不要意外編寫 JSL 轉義符 \[,它會改變 JSL 解釋字符串的方式。 在 [...] 中使用字符集時很可能會發生這種情況,如果您不知道這將是一個問題。
注意序列 [\]。 它不是字符集。它是一個字符集中的 2 個字符。
如何使用正則表達式替換?將指定的“(”替換為換行符,並刪除所有非中文和非數字字符。
d试1(-是23(a文字789(+内c容4$3

txt="d试1(-是23(a文字789(+内c容4$3";
na=Regex(txt, ?? );
謝謝!
高級統計建模回覆:如何使用正規表示式替換?謝謝克雷格!
我就用 EmEditor 重新替換一下
回覆:如何使用正規表示式替換?
謝謝克雷格!
如果我想把這個重新替換更進一步:在漢字和資料之間插入製表符(將原文中的漢字放在左邊,數字放在右邊),實現一張可以輸入結果的表格直接替換到 JMP 中:
您需要如何更改程式碼?

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;
回覆:如何使用正規表示式替換?這是一個負面向後看和正面向前看(lookaround)的例子。步驟 3 同時使用兩者。
(?
匹配當前零長度位置之前不是數字的單一字元。
(?=\d)
匹配當前零長度位置之後的數字的單一字元。
製表符插入到零長度位置以將非數字與數字分隔開。
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();">選項卡分隔字段</SPAN></SPAN></P>回覆:如何使用正規表示式替換?謝謝克雷格!
看看你寫的程式碼,真是一種享受!