none
Como encontrar string ignorando casas? RRS feed

  • Pergunta

  • Ola!

    Preciso encontrar uma string em um testo, uso:

    Dim Texto = "BBBBBBBBBBaaaaaaaaaaaaaaaaaaaBBBBBBBBBBBBBBBB"
    If Texto.Contains("aaaaaaaaaaaaaaaaaaa") Then
    msgbox("Contem")
    End If

    Funciona bem, mas a questão é o seguinte, como posso encontrar ignorando uma ou mais casas definidas por mim? Exemplo onde eu adicionar um "?" sera ignorado. Ex.:

    Dim Texto = "BBBBBBBBBBaaaaaaaaaaDaaaaaaaaBBBBBBBBBBBBBBBB"
    If Texto.Contains("aaaaaaaaaa?aaaaaaaa") Then
    msgbox("Contem")
    End If


    • Editado Eliseu5 segunda-feira, 24 de agosto de 2015 12:11
    segunda-feira, 24 de agosto de 2015 12:02

Respostas

  • Isso pode ser feito com regex, com esta expressao:

    (\waaaaaaaaaa?\waaaaaaaa)

    aqui em exemplo em vb:

    Dim myString As String = "BBBBBBBBBBaaaaaaaaaaDaaaaaaaaBBBBBBBBBBBBBBBB"
    Dim regex = New Regex("(\waaaaaaaaaa?\waaaaaaaa)")
    Dim match = regex.Match(myString)
    If match.Success Then
        Console.WriteLine(match.Value)
    End If

    eu testei essa expressao aqui:

    http://www.regexr.com/

    como voce pode ver abaixo, a sting é encontrada (em azul) sempre que existe o padrao "aaaaaaaaaa?aaaaaaaa"

    att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    • Sugerido como Resposta Herbert Lausmann segunda-feira, 24 de agosto de 2015 14:44
    • Marcado como Resposta Marcos SJ segunda-feira, 24 de agosto de 2015 14:50
    segunda-feira, 24 de agosto de 2015 14:42
    Moderador

Todas as Respostas

  • Utilize o conceito de autômatos finitos e analise letra por letra ao invés de uma palavra inteira.
    segunda-feira, 24 de agosto de 2015 13:38
  • Isso pode ser feito com regex, com esta expressao:

    (\waaaaaaaaaa?\waaaaaaaa)

    aqui em exemplo em vb:

    Dim myString As String = "BBBBBBBBBBaaaaaaaaaaDaaaaaaaaBBBBBBBBBBBBBBBB"
    Dim regex = New Regex("(\waaaaaaaaaa?\waaaaaaaa)")
    Dim match = regex.Match(myString)
    If match.Success Then
        Console.WriteLine(match.Value)
    End If

    eu testei essa expressao aqui:

    http://www.regexr.com/

    como voce pode ver abaixo, a sting é encontrada (em azul) sempre que existe o padrao "aaaaaaaaaa?aaaaaaaa"

    att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    • Sugerido como Resposta Herbert Lausmann segunda-feira, 24 de agosto de 2015 14:44
    • Marcado como Resposta Marcos SJ segunda-feira, 24 de agosto de 2015 14:50
    segunda-feira, 24 de agosto de 2015 14:42
    Moderador
  • Obrigado, consegui. :)
    segunda-feira, 24 de agosto de 2015 16:50