-1

Я пытаюсь использовать регулярное выражение и продолжаю получать ошибку (ошибка компилятора). СПИСОК SEPARATOR. Может кто-нибудь сказать мне, какую часть я делаю неправильно.

 if instr(1,regex.Pattern([A-Z]?dtest(rt,1)),b)>0 then

1 ответ1

0

InStr() имеет этот формат:

InStr(startCharacter, searchInText, searchForText, compareMode)


startCharacter - a number (Long)
searchInText   - string (no RegEx, or pattern matching, or wildcard characters)
searchForText  - string (no RegEx, or pattern matching, or wildcard characters)
compareMode    - a number (from -1 to 2)

Возвращает число (Variant - Long) - индекс, в котором searchForText находится внутри searchInText


Попробуйте использовать эти параметры:

Option Explicit

Sub findTxt()
    Debug.Print InStrRegEx("987xyz", "[A-Z]")                   ' -> 4
    Debug.Print getText("987xyz", "[A-Z]")                      ' -> x

    Debug.Print InStr(1, "987xyz", "x")                         ' -> 4
    Debug.Print InStr(1, "987xyz", getText("987xyz", "[A-Z]"))  ' -> 4

    Debug.Print "987xyz" Like "*[A-Za-z]"                       ' -> True
End Sub

Public Function InStrRegEx(ByVal searchIn As String, ByVal searchFor As String) As Long
    Dim regEx As Object, found As Object
    If Len(searchIn) > 0 And Len(searchFor) > 0 Then
        Set regEx = CreateObject("VBScript.RegExp")
        regEx.Pattern = searchFor
        regEx.Global = True
        regEx.IgnoreCase = True
        Set found = regEx.Execute(searchIn)
        If found.Count <> 0 Then InStrRegEx = found(0).FirstIndex + 1
    End If
End Function

Public Function getText(ByVal searchIn As String, ByVal searchFor As String) As String
    Dim regEx As Object, found As Object
    If Len(searchIn) > 0 And Len(searchFor) > 0 Then
        Set regEx = CreateObject("VBScript.RegExp")
        regEx.Pattern = searchFor
        regEx.Global = True
        regEx.IgnoreCase = True
        Set found = regEx.Execute(searchIn)
        If found.Count <> 0 Then getText = CStr(found(0))
    End If
End Function

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .