Чем задать табуляцию в регулярном выражении (VBA)

hulk1776

Топикстартер
15 лет на форуме
Сообщения
725
Реакции
21
Ищу первый пробел в строке, который хочу заменить на табуляцию.
в VBA:
pattern "^(.+?) "

Но вот при замене VBA не понимает "$1\t" как табуляцию и добавляет именно эти символы на место пробела.
Кто-то знает, как описать символ табуляции?
(на тестировочном ресурсе та же ситуация).
 

lev

Модератор
20 лет на форуме
Сообщения
2 142
Реакции
2 066
$1 & Chr(9)
$1 & vbTab
 

hulk1776

Топикстартер
15 лет на форуме
Сообщения
725
Реакции
21
Пришлось менять на {TAB}, а потом заменой через обычный вордовский поиск возвращать табуляцию
Код:
With Selection.Find
        .Text = "{TAB}"
        .Replacement.Text = "^t"
.Execute Replace:=wdReplaceAll
End With
 

hulk1776

Топикстартер
15 лет на форуме
Сообщения
725
Реакции
21
Видимо регексповский replace не понимает метасимволов - пробел заменятся на буквально указанные символы
Код:
Dim myRegExp As New RegExp ' создаем экземпляр RegExp
Dim strTest As String ' тестируемая строка
' устанавливаем свойства объекта RegExp
myRegExp.Global = True
myRegExp.MultiLine = True
myRegExp.Pattern = "^(.+?) "
Set mStory = Selection.Range
strTest = mStory
mChng = "$1vbTab"
''mChng = "$1{TAB}"
mStory.Text = myRegExp.Replace(strTest, mChng)
 

К.Т.

Участник
Сообщения
323
Реакции
337
Не "$1vbTab"
а "$1" & vbTab
Включение самого символа табуляции (а не его обозначения) в выражение.
 
  • Спасибо
Реакции: hulk1776