Используйте подстановочный знак (*) с RegEx в VBA, чтобы соответствовать чему-либо - PullRequest
0 голосов
/ 17 апреля 2019

Я пытаюсь использовать Regex, чтобы соответствовать любому символу (это всего лишь фрагмент кода из более крупного проекта). Я получил ниже, чтобы работать, но кажется, что это неправильно, есть ли правильный способ для поиска любого символа через RegEx?

strPattern = "([!@#$%^&*()]?[a-z]?[0-9]?)"

Например: MCVE

Public Sub RegExSearch()
    Dim regexp As Object
    Dim rng As Range, rcell As Range
    Dim strInput As String, strPattern As String

    Set regexp = CreateObject("vbscript.regexp")
    Set rng = ActiveSheet.Range("A1:A1")

    With regexp 
    .Global = False 
    .MultiLine = False 
    .ignoreCase = True 
    .Pattern = strPattern 
    End With

    For Each rcell In rng.Cells

        strPattern = "([!@#$%^&*()]?[a-z]?[0-9]?)" ' This matches everything, but seems improper

        If strPattern <> "" Then
            strInput = rcell.Value

            If regexp.test(strInput) Then
                MsgBox rcell & " Matched in Cell" & rcell.Address
            End If
        End If
    Next
End Sub

1 Ответ

3 голосов
/ 17 апреля 2019
. "Wildcard." The unescaped period matches any character, except a new line. 

strPattern = "."

Или, как указал @RonRosenfeld, если вам нужно сопоставить все, ВКЛЮЧАЯ «новую строку», то это будет работать.

strPattern = "[/S/s]*" 

https://wellsr.com/vba/2018/excel/vba-regex-regular-expressions-guide/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...