3 回答

TA貢獻2080條經驗 獲得超4個贊
假設您正在使用 VS 代碼作為 IDE 并且正在尋找編輯源代碼(而不是任意文本文件),那么在 VS 代碼中您可以做的最好的事情可能是使用帶有正則表達式的查找替換(確保您選擇“使用正則表達式” ,alt+R默認情況下):
搜索word\[(\d+):(\d+)\]并替換為word[$1/2:$2/2],結果將是
test1 = word[0/2:4/2]
test2 = word[4/2:16/2]
test3 = word[16/2:32/2]
test4 = word[32/2:1024/2]
test5 = word[1024/2:1086/2]
test6 = word[1086/2:1900/2]
test7 = word[1900/2:2000/2]
test8 = word[2000/2:3000/2]
這將在運行時評估您需要的輸出。

TA貢獻1865條經驗 獲得超7個贊
您可以在替換過程中用表達式的實際值替換數字,擴展名為Regex Text Generator?v0.8.0
您首先選擇與 DeepSpace 使用的相同正則表達式匹配的所有文本部分,然后使用相同的正則表達式提取每個選擇的捕獲組,并將它們用作生成文本并可以執行計算的不同正則表達式中的數值。
將使用過的正則表達式作為注釋文本放入文件中會很方便。您可以復制部分文件并將其粘貼到擴展的 InputBoxes 中。
#?orig?regex:?word\[(\d+):(\d+)\] #?generate?regex:?word\[{{=N[1]/2}}:{{=N[2]/2}}\]
word\[(\d+):(\d+)\]
在“查找”對話框中粘貼第一個正則表達式并勾選正則表達式按鈕 (?.*
)。如果在打開“查找”對話框時仍選擇正則表達式,它將轉義很多字符,只需粘貼正確的版本在文檔中單擊,使焦點不再位于“查找”對話框中
選擇與查找正則表達式匹配的所有字符串:Ctrl+?Shift+L
啟動命令:
Generate text based on Regular Expression (regex)
用Ctrl++ShiftP將仍在剪貼板中的第一個正則表達式粘貼到
Match Original Text Regular Expression
輸入框中,然后按Enter選擇生成正則表達式并將其復制粘貼到下一個輸入框
Generator Regular Expression
替換結果顯示在編輯器中,您可以接受Enter或拒絕Esc
測試文件的結果將是:
test1 = word[0:2]
test2 = word[2:8]
test3 = word[8:16]
test4 = word[16:512]
test5 = word[512:543]
test6 = word[543:950]
test7 = word[950:1000]
test8 = word[1000:1500]
如果您需要定期執行此操作,您可以定義一個鍵盤快捷鍵,將使用的正則表達式輸入輸入框,并允許您在需要時修改它們。
? {
? ? "key": "ctrl+f10",
? ? "when": "editorTextFocus",
? ? "command": "regexTextGen.generateText",
? ? "args": {
? ? ? "originalTextRegex" : "word\\[(\\d+):(\\d+)\\]",
? ? ? "generatorRegex" : "word\\[{{=N[1]/2}}:{{=N[2]/2}}\\]",
? ? ? "useInputBox" : true
? ? }
? }
現在使用鍵盤快捷鍵完成了步驟 4 .. 7。

TA貢獻1831條經驗 獲得超4個贊
查找:
word\[(\d+):(\d+)\]
替換:word[$1/2:$2/2]
來自@DeepSpace查找:
\d+/\d+
查找所有num/num2
[不替換]Ctrl+ Shift+分別L選擇所有的
num/num2
Emmet: Evaluate Math Expression
從命令面板運行(或將其綁定到鍵綁定)
Emmet 可以做這種數學運算。
添加回答
舉報