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 可以做这种数学运算。
添加回答
举报