Трудно найти правильный шаблон регулярных выражений в Excel VBA.
Учитывая следующий пример:
"Том носил короткую красную рубашку в день рождения Тома. Как вы уже догадались, у Томов тот же день рождения."
Я хочу сопоставить всех Томов плюс любой символ в любом количестве вплоть до границы слова. Так что в примере Том, Том и Томс будут совпадать. Затем мне нужно удалить их из строки, включая пробел после слова, поэтому, когда я закончу, строка будет выглядеть следующим образом.
носил короткую красную рубашку на день рождения. Как вы уже догадались, день рождения одинаков.
Можно ли это сделать с одним шаблоном?
Вот мой пример кода. Я попробовал несколько комбинаций безуспешно.
Sub test()
Dim re As Object
Set re = CreateObject("VBScript.RegExp")
re.Global = True
re.IgnoreCase = True
sample = "Tom wore a short red shirt on Tom's birthday. As you might have guessed the Toms have the same birthday."
Debug.Print (sample)
're.Pattern = "Tom[a-zA-Z'-]+\b"
re.Pattern = "Tom+\b"
x = re.Replace(sample, "")
Debug.Print (x)
End Sub