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

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

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

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

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

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

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

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

решение1

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

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

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

Удачи!

решение2

Могут ли они запустить 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

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

Связанный контент