Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Хочу все знать » [решено] Продвинутая замена текста

Ответить
Настройки темы
[решено] Продвинутая замена текста

Аватара для vk_k14m@vk

Старожил


Сообщения: 342
Благодарности: 4


Конфигурация

Профиль | Отправить PM | Цитировать


Доброго времени суток. Нужна помощь с очисткой большого количества объемных текстовых файлов от кодов мешающих читать текст.

Пример таких кодов
Код: Выделить весь код
@texton
@interlude_start
@r
  [wrap text="It"]It [wrap text="was"]was [wrap text="a"]a [wrap text="thrust"]thrust [wrap text="like"]like [wrap text="lightning."]lightning.[l][r]
  [wrap text="A"]A [wrap text="spearhead"]spearhead [wrap text="thrust"]thrust [wrap text="to"]to [wrap text="pierce"]pierce [wrap text="my"]my [wrap text="heart."]heart.[l][r]
  [wrap text="Trying"]Trying [wrap text="to"]to [wrap text="dodge"]dodge [wrap text="it"]it [wrap text="would"]would [wrap text="be"]be [wrap text="useless."]useless.[l][r]
  [wrap text="Being"]Being [wrap text="lightning,"]lightning, [wrap text="it's"]it's [wrap text="invisible"]invisible [wrap text="to"]to [wrap text="the"]the [wrap text="human"]human [wrap text="eye."]eye.[l][r]
@textoff
@se file=se085 nowait=true
@blackout rule=右から左へ vague=64 time=200
@se file=se088 nowait=true
@quakeT time=1200 vmax=15 hmax=30
Как вы наверно догадались, я о кодах [wrap text=""]. У этих кодов есть понятная закономерность, в скобках отображается тот же текст, что и после закрытия квадратной скобки до первого пробела или другой квадратной скобки.
[wrap text="It"]It
[wrap text="was"]was
[wrap text="a"]a
и т.д.

И вот мне нужен способ удаления этих кодов вместе с тем что находится в скобках. В результате должно получится нечто такое
Код: Выделить весь код
@texton
@interlude_start
@r
  It was a thrust like lightning.[l][r]
  A spearhead thrust to pierce my heart.[l][r]
  Trying to dodge it would be useless.[l][r]
  Being lightning, it’s invisible to the human eye.[l][r]
@textoff
@se file=se085 nowait=true
@blackout rule=右から左へ vague=64 time=200
@se file=se088 nowait=true
@quakeT time=1200 vmax=15 hmax=30
Не подскажите как бы это можно было б сделать?

З.Ы. Если есть более подходящий раздел для этого вопроса, не затруднитесь подсказать...

-------
Взялся отвечать, отвечай до конца!


Отправлено: 00:06, 12-06-2019

 

Динохромный


Contributor


Сообщения: 700
Благодарности: 320

Профиль | Отправить PM | Цитировать


Цитата vk_k14m@vk:
У этих кодов есть понятная закономерность, в скобках отображается тот же текст, что и после закрытия квадратной скобки до первого пробела или другой квадратной скобки. »
Если удалить нужно все, что находится между знаками "[" и "]", то как один из вариантов содержимое можно скопировать в Word, тогда задача решается поиском и заменой по строке "[^0091]*[^0093]" без кавычек с опцией "подстановочные знаки", но при этом будет удален весь текст между скобками, в том числе [l][r].

Если задача удалить только то, что дублируется после квадратных скобок - вероятно нужно писать скрипт.

Добавлено:
Если в каждом выражении обязательно присутствует текст "[wrap text=", то поиск можно сузить запросом:
[^0091]wrap text="*"[^0093]

-------
[Форум Word и Excel] - [Как запустить Word, Excel и Outlook в безопасном режиме?] - [Как удалить шаблон Word Normal.dotm?]


Последний раз редактировалось a_axe, 12-06-2019 в 10:33. Причина: Уточнение


Отправлено: 01:06, 12-06-2019 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Ну, например, на PowerShell:
Скрытый текст
Код: Выделить весь код
$oRegExp = New-Object -TypeName 'System.Text.RegularExpressions.Regex' -ArgumentList '\[wrap text=\".*?\"\]'


Get-ChildItem -Path 'C:\Мои проекты\0264\*.txt' |`
    ForEach-Object -Process {
         $sContent = Get-Content -Path $_.FullName -Raw -Encoding 'Unicode'
         Write-Host $_.FullName -NoNewline

         if($oRegExp.IsMatch($sContent)) {
            $sContent = $oRegExp.Replace($sContent, '')
            Rename-Item -Path $_.FullName -NewName "$($_.BaseName).bak"
            Set-Content -Path $_.FullName -Value $sContent -Encoding 'Unicode'

            Write-Host "`tOk"
         } else {
            Write-Host "`tPattern not found"
         }
    }

Задайте Ваши пути, расширения файлов и правильную кодировку.

Отправлено: 01:15, 12-06-2019 | #3



Компьютерный форум OSzone.net » Компьютеры + Интернет » Хочу все знать » [решено] Продвинутая замена текста

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Замена текста в документе null999 Скриптовые языки администрирования Windows 6 24-08-2016 01:12
CMD/BAT - Замена текста. TranCrey Скриптовые языки администрирования Windows 2 15-06-2015 00:18
CMD/BAT - Замена текста Fevzy Скриптовые языки администрирования Windows 9 28-04-2013 21:22
Любой язык - Поиск и замена текста firstarey Скриптовые языки администрирования Windows 2 09-04-2013 08:44
Офис и Текст - Замена текста Котяра Программное обеспечение Windows 1 29-09-2008 13:51




 
Переход