none
Regex.Replace problema com @ RRS feed

  • Pergunta

  • Olá,

    tenho uma string

    var x = "TEXTO DE @TESTE";

    e estou tentando fazer um replace usando Regex da seguinte forma

    string pattern = "\\b@TESTE\\b";

    x = Regex.Replace(x, pattern , "DEVELOPER", RegexOptions.IgnoreCase);

    entretanto não faz o replace por causa do '@' no texto, se eu tiro o '@' tanto da variável x quanto da pattern aí funciona, mas no meu caso eu tenho que ter o '@'.

    Alguem sabe o porque não faz o replace com @ e como posso contornar o problema?

    sexta-feira, 27 de janeiro de 2017 17:21

Respostas

  • Olá Jack.Prg, 

    O problema nesse caso não é o "@" e sim o fato de você estar usando escape "\\b" no pattern. 
    Experimente usar assim string pattern = "\\b @TESTE\\b";  (espaço antes do @), para você ver como funciona. 

    Nesse caso não sei exatamente quais são suas necessidades em usar o escape.

    Mas espero ter ajudado. 

     
    • Sugerido como Resposta Juliano CustódioMVP sexta-feira, 27 de janeiro de 2017 18:57
    • Marcado como Resposta Jack.Prg sábado, 28 de janeiro de 2017 12:58
    sexta-feira, 27 de janeiro de 2017 18:57
  • Olá,

    Tenta dessa forma:

    var a = "TEXTO DE @TESTE";
    string pattern = @"@TESTE";
    
    var x = Regex.Replace(a, pattern, "DEVELOPER", RegexOptions.IgnoreCase);

    Valeu!


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    André Secco
    Microsoft MVP & MSDN Tech Advisor
    Blog: http://andresecco.com.br
    GitHub: http://github.com/andreluizsecco
    Twitter: @andre_secco

    • Marcado como Resposta Jack.Prg sábado, 28 de janeiro de 2017 12:58
    sexta-feira, 27 de janeiro de 2017 18:59

Todas as Respostas

  • Olá Jack.Prg, 

    O problema nesse caso não é o "@" e sim o fato de você estar usando escape "\\b" no pattern. 
    Experimente usar assim string pattern = "\\b @TESTE\\b";  (espaço antes do @), para você ver como funciona. 

    Nesse caso não sei exatamente quais são suas necessidades em usar o escape.

    Mas espero ter ajudado. 

     
    • Sugerido como Resposta Juliano CustódioMVP sexta-feira, 27 de janeiro de 2017 18:57
    • Marcado como Resposta Jack.Prg sábado, 28 de janeiro de 2017 12:58
    sexta-feira, 27 de janeiro de 2017 18:57
  • Olá,

    Tenta dessa forma:

    var a = "TEXTO DE @TESTE";
    string pattern = @"@TESTE";
    
    var x = Regex.Replace(a, pattern, "DEVELOPER", RegexOptions.IgnoreCase);

    Valeu!


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    André Secco
    Microsoft MVP & MSDN Tech Advisor
    Blog: http://andresecco.com.br
    GitHub: http://github.com/andreluizsecco
    Twitter: @andre_secco

    • Marcado como Resposta Jack.Prg sábado, 28 de janeiro de 2017 12:58
    sexta-feira, 27 de janeiro de 2017 18:59