Вы можете заменить числа фактическим значением выражения во время замены расширением Генератор текста регулярных выражений v0.8.0
Сначала вы выбираете все части текста, соответствующие одному и тому же регулярному выражению как использует DeepSpace, затем используйте одно и то же регулярное выражение для извлечения групп захвата для каждого выбора и использования их в качестве числовых c значений в другом регулярном выражении, которое генерирует текст и может выполнять вычисления.
Может быть удобно поставить используемые регулярные выражения в качестве текста комментария в файле. Вы можете копировать части файла и вставлять их в поля ввода расширения.
# orig regex: word\[(\d+):(\d+)\]
# generate regex: word\[{{=N[1]/2}}:{{=N[2]/2}}\]
- Вставьте первое регулярное выражение
word\[(\d+):(\d+)\]
в диалоговом окне «Найти» и отметьте кнопку регулярного выражения (.*
) . Если регулярное выражение по-прежнему выбрано, когда вы открываете диалоговое окно «Найти», оно будет экранировать множество символов, просто вставьте правильную версию - Щелкните в документе, чтобы фокус больше не находился в диалоговом окне «Найти»
- Выберите все строки, соответствующие регулярному выражению Find: Ctrl + Shift + L
- Запустите команду:
Generate text based on Regular Expression (regex)
с Ctrl + Shift + P - Вставьте первое регулярное выражение, все еще находящееся в буфере обмена, в поле ввода
Match Original Text Regular Expression
и нажмите Enter - Выберите и скопируйте и вставьте сгенерированное регулярное выражение в следующее поле ввода
Generator Regular Expression
- Результат замены отображается в редакторе, вы можете принять его, нажав Введите или отклонить с помощью Es c
Результат с тестовым файлом будет:
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 теперь выполняются с помощью сочетания клавиш.