Skip to content

SafeZone-cc/ReplaceByRegular

Repository files navigation

ReplaceByRegular

Π‘ΠΊΡ€ΠΈΠΏΡ‚ для Π·Π°ΠΌΠ΅Π½Ρ‹ тСкста Π²ΠΎ мноТСствС Ρ„Π°ΠΉΠ»ΠΎΠ² согласно рСгулярным выраТСниям.

Бостав

  • Regular.txt - список Π·Π°ΠΌΠ΅Π½
  • ReplaceByRegular.vbs - сам скрипт
  • Readme.txt - этот Ρ„Π°ΠΉΠ».

Как ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ?

  1. ΠšΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚Π΅ Ρ„Π°ΠΉΠ» Regular.txt ΠΈ ReplaceByRegular.vbs Π² ΠΏΠ°ΠΏΠΊΡƒ, Π³Π΄Π΅ Π½ΡƒΠΆΠ½ΠΎ рСкурсивно (с ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°ΠΌΠΈ) провСсти Π·Π°ΠΌΠ΅Π½Ρ‹ тСкста.

ВСкст ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°Ρ…:

  • ANSI
  • UTF-8 (Π² этом случаС тСкст рСгулярки Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π² UTF-8 (Π±Π΅Π· BOM))
  • UTF-16 LE с BOM
  1. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Regular.txt (Π΄ΠΎΠ»ΠΆΠ΅Π½ Π»Π΅ΠΆΠ°Ρ‚ΡŒ рядом со скриптом). Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ Π·Π°ΠΌΠ΅Π½ Π²ΠΈΠ΄Π°:

word1=Π§Ρ‚ΠΎ ΠΈΡ‰Π΅ΠΌ1

word2=ЧСм замСняСм1

word1=Π§Ρ‚ΠΎ ΠΈΡ‰Π΅ΠΌ2

word2=ЧСм замСняСм2

Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ word1= сооствСтствуСт word2=, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ΄ Π½ΠΈΠΌ находится. Π’Π°ΠΊ, Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ нСсколько Ρ€Π°Π·Π½Ρ‹Ρ… Π·Π°ΠΌΠ΅Π½.

word1= ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ для поиска рСгулярноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ (ΠΏΠΈΡΠ°Ρ‚ΡŒ послС Π·Π½Π°ΠΊΠ° равСнства).

word2= ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ тСкст, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Π° Π·Π°ΠΌΠ΅Π½Π° части, Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠΉ рСгуляркой, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π² word1=

  1. ЗапускаСм скрипт ReplaceByRegular.vbs

ΠžΡ‚Ρ‡Π΅Ρ‚ ΠΎ Π·Π°ΠΌΠ΅Π½Π°Ρ… Π±ΡƒΠ΄Π΅Ρ‚ создан Π² Π²ΠΈΠ΄Π΅ Ρ„Π°ΠΉΠ»Π° Replace - log.log рядом со скриптом.

Настройки

  1. Бписок Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ

Π‘ΠΊΡ€ΠΈΠΏΡ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„Π°ΠΉΠ»Ρ‹ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡΠΌΠΈ, список ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡƒΠΊΠ°Π·Π°Π½ Π² Π΅Π³ΠΎ шапкС. ΠŸΡ€Π°Π²Ρ‹ΠΉ ΠΊΠ»ΠΈΠΊ ΠΏΠΎ Ρ„Π°ΠΉΠ»Ρƒ ReplaceByRegular.vbs -> "Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ" Π‘ΠΌΠΎΡ‚Ρ€ΠΈΠΌ сюда (строка 5):

Dim Exts: Exts = "htm;html;txt"

  1. Π—Π°ΠΌΠ΅Π½Π° с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ рСгистра Π±ΡƒΠΊΠ². Если Π’Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΡƒΡ‡Ρ‘Ρ‚ рСгистра Π±ΡƒΠΊΠ² ΠΏΡ€ΠΈ поискС ΠΏΠΎ рСгулярному Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ: ΠŸΡ€Π°Π²Ρ‹ΠΉ ΠΊΠ»ΠΈΠΊ ΠΏΠΎ Ρ„Π°ΠΉΠ»Ρƒ ReplaceByRegular.vbs -> "Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ" Π‘ΠΌΠΎΡ‚Ρ€ΠΈΠΌ сюда (строка 11):

Dim IgnoreCase: IgnoreCase = true

и мСняСм true на false

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ

Π’ word2 Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° экранирования. Π’Π°ΠΊ:

\ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΌΠ΅Π½Π΅Π½ Π½Π° \

^ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΌΠ΅Π½Π΅Π½ Π½Π° ^

$ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΌΠ΅Π½Π΅Π½ Π½Π° $

* Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΌΠ΅Π½Π΅Π½ Π½Π° *

+ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΌΠ΅Π½Π΅Π½ Π½Π° +

? Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΌΠ΅Π½Π΅Π½ Π½Π° ?

. Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΌΠ΅Π½Π΅Π½ Π½Π° .

| Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΌΠ΅Π½Π΅Π½ Π½Π° |

\n Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΌΠ΅Π½Π΅Π½ Π½Π° Π½ΠΎΠ²ΡƒΡŽ строку

\r Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΌΠ΅Π½Π΅Π½ Π½Π° ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ

\t Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΌΠ΅Π½Π΅Π½ Π½Π° Π·Π½Π°ΠΊ табуляции

Π’Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ 2 ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π·Π°ΠΌΠ΅Π½Ρ‹:

  1. $$$file$$$ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΌΠ΅Π½Π΅Π½ΠΎ Π½Π° имя Ρ„Π°ΠΉΠ»Π° (+ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ), Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π½Π°ΠΉΠ΄Π΅Π½Π° искомая Ρ„Ρ€Π°Π·Π°.

НапримСр, Ссли Ρ„Π°ΠΉΠ» назывался my.txt Π° ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ Ρ‚Π°ΠΊΠΈΠ΅:

word1=\<a href="default\.htm"\>

word2=<a href="$$$file$$$">

Ρ‚ΠΎ <a href="default.htm"> Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΌΠ΅Π½Π΅Π½ΠΎ Π½Π°: <a href="my.txt">

  1. \@{{{utf8toANSI}}}

ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ искомая Ρ„Ρ€Π°Π·Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Π° ΠΈΠ· ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ utf-8 Π² ANSI, Π³Π΄Π΅ @ - это подстановка искомой Ρ„Ρ€Π°Π·Ρ‹.

НапримСр, ΠΈΠΌΠ΅Π΅ΠΌ тСкст Π² utf-8:

<title>ΠŸΡ€ΠΈΠ²Π΅Ρ‚, regist</title>

ПослС примСнСния шаблона:

word1=<title>[^<]*</title>

word2=\@{{{utf8toANSI}}}

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ ANSI-строка:

<title>ΠŸΡ€ΠΈΠ²Π΅Ρ‚, regist</title>

  1. \@{{{ANSItoUTF8}}}

ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ искомая Ρ„Ρ€Π°Π·Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Π° ΠΈΠ· ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ ANSI Π² utf-8, Π³Π΄Π΅ @ - это подстановка искомой Ρ„Ρ€Π°Π·Ρ‹.

НапримСр, ΠΈΠΌΠ΅Π΅ΠΌ тСкст Π² ANSI:

<title>ΠŸΡ€ΠΈΠ²Π΅Ρ‚, regist</title>

ПослС примСнСния шаблона:

word1=<title>[^<]*</title>

word2="\@"{{{ANSItoUTF8}}}

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ UTF-8 строка (Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°Ρ…): "<title>ΠŸΡ€ΠΈΠ²Π΅Ρ‚, regist</title>"

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΌΠ΅Ρ‚ΠΊΠ° BOM автоматичСски Π½Π΅ добавляСтся. НСкоторыС Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅Π²Π΅Ρ€Π½ΠΎ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Ρ‚ΡŒ исходный Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ тСкстового Ρ„Π°ΠΉΠ»Π°.

Π‘ΠΊΡ€ΠΈΠΏΡ‚ сподвигнул Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ regist

About

Replacing text in multiple files according to multiple regular expressions

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published