Excel VBA RegEx Совпадение слов плюс что-либо к границе слова - PullRequest
0 голосов
/ 06 ноября 2018

Трудно найти правильный шаблон регулярных выражений в 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

Ответы [ 2 ]

0 голосов
/ 06 ноября 2018

Вы пробовали это:

x = Replace(sample, re.Pattern, "")

Удачи.

0 голосов
/ 06 ноября 2018

Возможно, вы хотите использовать этот шаблон:

Tom\S*\b

Это будет соответствовать Tom, за которым следует любое количество непробельных символов (от нуля или более), оканчивающихся границей слова.

re.Pattern = "Tom\S*\b"
x = re.Replace(sample, "")
Debug.Print(x)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...