如何解决VS代码段中的嵌套正则表达式替换
在重新构造文本(rst)文件中进行大量粗体读取时,我犯了一个错误,在这种情况下,我应该使用不同的标题样式。
我需要替换:
**some heading**
具有:
some heading
............
我想使用VS Code片段来做到这一点,在其中我突出显示有问题的文本,然后运行该片段进行替换。
为此,我认为我需要进行两次替换:
我不知道如何在VS Code片段中进行嵌套替换-甚至有可能吗?
这就是我现在拥有的:
"BoldToSubheading": {
"prefix": ["boldtosubheading"],"body": [
"${TM_SELECTED_TEXT/\\*\\*(.*)\\*\\*/${1}/}","${TM_SELECTED_TEXT/././g}",],"description": "Change bold text into subheading."
}
如果输入的文本是:
**foobar**
我得到四个点太多-因为最后一个替换中包含星号。
foobar
..........
代码段代码似乎基于的
For nested replacements,use named captures as variables are inherited.
但是,我试过"${TM_SELECTED_TEXT/(?<guts>.*)/${guts}/g}"
并没有运气。
是否有解决我的替换问题的建议?片段是否可以嵌套替换?
要求是:
解决方法
我认为只用一个代码片段可能会更容易-也许有条件的替换-但我无法在合理的时间内弄清楚。但这很容易做到。
使用multi-command之类的宏扩展名,将其放入您的设置:
uploadFile($event) {
if ($event.target.files && $event.target.files[0]) {
const file = $event.target.files[0];
const reader = new FileReader();
reader.readAsDataURL(file)
reader.onload = (e: any) => {
this.imageSource = reader.result;
this.openDialog(this.imageSource); // <-- should be inside the callback
}
}
}
和一个用于触发它的键绑定(在keybindings.json中):
"multiCommand.commands": [
{
"command": "multiCommand.refactorHeadings","interval": 250,// remove this line and will be instantaneous
"sequence": [
{
"command": "editor.action.insertSnippet","args": {
"snippet": "${TM_SELECTED_TEXT/\\*\\*(.*)\\*\\*/$1/}",}
},"editor.action.copyLinesDownAction","cursorLineStartSelect",{
"command": "editor.action.insertSnippet","args": {
"snippet": "${TM_SELECTED_TEXT/././g}",}
}
]
}
],
该演示显示选择所有这样的简单查找正则表达式, Ctrl + Shift + L 将执行此操作,并触发宏。出于演示目的,显示速度有所降低。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。