Короче говоря, мне нужно разрешить клиенту регулярно выполнять поиск и замену регулярных выражений, которые выглядят так во многих файлах SVG размером до 3 МБ:

  • Найти: font-family=".*?"
  • Заменить на: font-family="Liberation Sans, Helvetica, Arial, sans-serif"

Легко в большинстве редакторов кода: но проблема в том, что сотрудники, которые будут выполнять этот процесс, будут находиться в очень ограниченной среде - Windows 7 практически без нестандартного программного обеспечения, кроме Microsoft Office и, возможно, Adobe Illustrator, на виртуальных рабочих столах без администратора прав. К сожалению, это не подлежит обсуждению.

Я пытаюсь убедить руководство сделать исключение и позволить добавить что-то вроде Notepad++ в их среду - но это не так просто, как кажется (насколько я понимаю, потому что оно виртуализировано, установка собственного программного обеспечения для одна машина означает установку ее на серверы, которые используют более 1000 компьютеров, что они очень устойчивы).

Итак, если установка пользовательского программного обеспечения невозможна, есть ли способ выполнить поиск / замену регулярных выражений с помощью инструментов, поставляемых с Windows или Office?

Я знаю, что в Word есть некоторые возможности регулярного поиска / замены, но я не знаю, как его остановить, а также создаю беспорядок в любом кодовом файле, к которому он обращается. Есть много других маленьких инструментов, упакованных с Windows: любой из них может сделать это? Веб-инструменты также могут работать.

2 ответа2

1

На самом деле вариантов много ..

Этот онлайн-инструмент великолепен -> http://www.regexr.com/

Кроме того, вы можете скачать портативную версию NOTEPAD++ и запустить что-нибудь там ..

Удачи!

0

Могут ли они запустить VBScript? Если это так, то будет работать следующий (быстро взломанный) VBScript:

Option Explicit
If WScript.Arguments.Count <> 2 Then
    WScript.Echo "Usage: " & WScript.ScriptName & " <input> <output>"
    WScript.Quit
End If
Dim fso : Set fso = CreateObject("Scripting.FileSystemObject")
If fso.FileExists(WScript.Arguments.Item(0)) = False Then
    WScript.Echo "Error: `" & WScript.Arguments.Item(0) & "` does not exist."
    WScript.Quit
End If
Dim oFile : Set oFile = fso.OpenTextFile(WScript.Arguments.Item(0))
Dim sContents : sContents = oFile.ReadAll : oFile.Close
Dim re : Set re = New Regexp
re.IgnoreCase = True : re.Global = True : re.Pattern = "font-family=\"".*?\"""
sContents = re.Replace(sContents, "font-family=""Liberation Sans, Helvetica, Arial, sans-serif""")
Set oFile = fso.CreateTextFile(WScript.Arguments.Item(1), True)
oFile.Write sContents
oFile.Close
Set re = Nothing
Set oFile = Nothing
Set fso = Nothing

Сохраните его как-то (например, convert.vbs), а затем запустите его с помощью следующей командной строки:

cscript convert.vbs <input file> <output file>

Если вы хотите перезаписать оригинал с изменениями, просто введите имя файла дважды, например:

cscript convert.vbs diagram.svg diagram.svg

В зависимости от вашего уровня комфорта, вы можете либо изменить это, чтобы работать с группой файлов, либо написать пакетный файл, который вызывает это столько раз, сколько файлов.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .