Я пытаюсь заменить часть текста между апострофами, а не все, только часть.Например, мне нужно заменить символы / * и * /, которые находятся внутри текста между кавычками, на пустой текст, но не за его пределами.
Мой вводимый текст, например:
A = 'THIS IS AN ALPHABETIC /* CONSTANT' || WS_CON1 /* */ || 'TEST STRING */';
Ожидаемый результат:
A = 'THIS IS AN ALPHABETIC CONSTANT' || WS_CON1 /* */ || 'TEST STRING ';
Я извлек текст в кавычки, но не знаю, как заменить / * и * / нулевым текстом.
Sub ReplaceWithRegex()
Dim strPattern As String
Dim strReplace As String
Dim regEx As Variant
Dim strtxt As String
Set regEx = CreateObject("vbscript.regexp")
strtxt = "A = 'THIS IS AN ALPHABETIC /* CONSTANT' || WS_CON1 /* */ || ' TEST STRING */';"
strPattern = "\'([^\']*)\'"
strReplace = ""
With regEx
.Global = True
.MultiLine = True
.IgnoreCase = False
.Pattern = strPattern
End With
If regEx.Test(strtxt) Then
Debug.Print regEx.Replace(strtxt, strReplace)
Else
MsgBox ("Not matched")
End If
End Sub
Очевидно, это заменяет весь текст между кавычками на пустую строку.
Как мне решить эту проблему?