Ответ 1
VBA предлагает положительные и отрицательные образы, но скорее непоследовательно не выглядит.
Лучший пример использования Regex с VBA, который я видел, - эта статья Патрика Мэтьюза
[Обновлен пример с использованием Execute
, а не Replace
]
Пока я не совсем понимаю ваше использование, вы можете использовать такую функцию с помощью
- пропускает любые слова, начинающиеся с A
-
для всех слов, не начинающихся с a, он возвращает все, начиная с второго символа (с помощью подмаски - паттерн внутри
(
и)
является отправкой 1 -Sub TestString() MsgBox ReducedText("cfat dcat") MsgBox ReducedText("Sat all over the hat again") End Sub Function ReducedText(strIn As String) As String Dim objRegex As Object Dim objRegMC As Object Dim objRegM As Object Dim strOut As String Set objRegex = CreateObject("vbscript.regexp") With objRegex .IgnoreCase = True 'not needed if matching the whole string .Global = True .Pattern = "\b[^a\s]([a-z]+)" If .test(strIn) Then Set objRegMC = .Execute(strIn) For Each objRegM In objRegMC strOut = strOut & objRegM.submatches(0) & vbNewLine Next ReducedText = strOut Else ReducedText = "Starts with A" End If End With End Function