найти и выделить фрагмент текста между ключевых слов

  • Автор темы Автор темы fokeldo
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

fokeldo

Участник
Топикстартер
Сообщения
3
Реакции
0
hi all,

сейчас я пользуюсь скриптом для обработки текста в MS Word.
после этого импортирую полученный текст в Indesign.

по ряду причин, хотелось бы все операции делать сразу в Indesign, чтобы обойтись без работы в Word.

задача скрипта в следующем:
1. в тексте ищется и выделятся фрагмент, находящийся между ключевымы словоми. например, если первое ключевое слово "собака" , а второе "нога", то во всем массиве текста должен выделиться кусок находящийся между "собакой" и "ногой"
2. в данном выделенном фрагменте, над текстом производяться определенные действия (найти и заменить, форматирование)
3. текст между заданными ключевыми словами ищется далее, пока не будет обработан весь файл.

в ворде данный скрипт выглядит следующим образом (авторство - Ashton с SQL.ru):

'скрипт запускающий процедуру
'

Sub ChangeIT()
SelectBetween2Words "Ключевое-слово-1", "Ключевое-слово-2"
End Sub

'непосредственно сам скрипт
'
Public Sub SelectBetween2Words( _
ByRef strWord1 As String, _
ByRef strWord2 As String)
Dim rng As Range
Dim rngTemp As Range

Set rng = ActiveDocument.Content

With rng.Find
.ClearFormatting

Do While .Execute( _
FindText:="<(" & strWord1 & ")>*<(" & strWord2 & ")>", _
Forward:=True, _
MatchWildcards:=True) = True

Set rngTemp = ActiveDocument.Range( _
rng.Start + Len(strWord1), _
rng.End - Len(strWord2) - 2)

rngTemp.Select
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "^p"
.Replacement.Text = " "
.Forward = True
.Wrap = False
.format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Loop
End With
End Sub

вопрос: реально ли переделать данный скрипт так, чтобы он работал в indesign'e? или скрипты для этих программ совершенно разные и несовместимые?

альтернативный вопрос: может быть уже существуют скрипты, решающие аналогичные задачи для Indesign?

заранее спасибо.

PS: поиском пользовался, искал по разным запросам, но требуемой темы не нашел. если она уже поднималась, просьба дать ссылку!
 
Ответ: найти и выделить фрагмент текста между ключевых слов

если собака и ее нога всегда в одном абзаце - то текст ловится грепом
(?<=собака).*?(?=нога)

(?<= собака)(.|\r)*?(?= нога) - это сквозь абзацы, но при условии что текст "девственно чист" (напр, через символ принудительного конца строки (\n) этот запрос уже не пройдет)
 
Статус
Закрыто для дальнейших ответов.