Как мне найти и заменить одно слово на несколько разных слов?
401
exsonic01
Используя MS Word или Notepad ++, я хочу найти и заменить один словарь на несколько разных синонимов.
Например, из моего текста я обнаружил, что определенное слово AAAA появляется слишком часто. Итак, я хочу изменить этот AAAA на BBBB, CCCC или DDDD. Как найти и заменить «красивый» на «удивительный», «красивый» или «заманчивый».
Это может быть случайным образом (60% от BBBB, 30% от CCCC и 10% от DDDD, случайным образом) или это может быть порядок (замените на BBBB, затем замените следующий на CCCC, затем замените следующий на DDDD, затем замените следующий к BBBB снова ...)
Можно ли выполнить такой поиск и замену из MS Word или Notepad ++? Было бы лучше написать сценарий или макрос для выполнения такого действия?
2 ответа на вопрос
0
harrymc
Notepad ++ не имеет случайной замены или даже циклической замены, а также регулярных выражений. Это не инструмент программирования, как и Word.
Написание скрипта / макроса намного лучше. Если вы упоминаете Word, то VBA, безусловно, может это сделать. Вы можете быстро начать с записи сеанса, в котором вы делаете такие замены, а затем расширить его с помощью цикла.
Спасибо за ваши рекомендации, я уже читаю.
exsonic01 5 лет назад
0
0
Rich Michaels
Попробуйте это ... это должно дать вам начало.
Sub FindReplaceSynonyms() Dim doc As word.Document, rng As word.Range Dim FindStr As String, SynonymStr As String Dim SplitStr() As String, i As Long Set doc = ActiveDocument Set rng = doc.Content FindStr = "beautiful" SynonymStr = "astonishing,pretty,alluring" SplitStr = Split(SynonymStr, ",") With rng.Find .ClearFormatting .Format = False .Forward = True .MatchCase = True .Text = FindStr .Wrap = wdFindStop .Execute Do While .found rng.Text = SplitStr(i) i = i + 1 If i > UBound(SplitStr) Then i = 0 rng.Collapse wdCollapseEnd .Execute Loop End With MsgBox "Action Complete", vbExclamation, "Custom Replace" End Sub
Большое спасибо, я проверил, и это прекрасно работает!
exsonic01 5 лет назад
0