Expressão regular com idiomas estrangeiros
-
22-09-2019 - |
Pergunta
Eu tenho uma função que usei várias vezes em vários arquivos que têm uma assinatura como:
Translate("English Message", "Spanish Message", "French Message")
E estou querendo retirar as mensagens inglesas, espanholas e francesas e depois em um CSV para que as pessoas que realmente saibam que esses idiomas podem me dizer o que eu deveria ter colocado lá.
De qualquer forma, o que estou encontrando é que algumas mensagens francesas e espanholas não aparecem por causa dos personagens acentuados e citações únicas.
Este é um programa vb.net.
Editar
Não havia nenhum problema com o idioma, meu problema era na verdade a expressão regular e minha completa falta de entendimento de expressões regulares.
Solução
Depende da biblioteca Regex que você está usando. As implementações sãs regex usam o UTF-8 e não têm esses problemas, mas mais detalhes seriam úteis sobre o que você está usando, o que a biblioteca regex etc.
Outras dicas
Se houver um sinalizador Dotall na implementação do REGEX do seu idioma, convém defini -lo.
Como alternativa, mude a regex para capturar uma classe de caracteres negada, como assim:
([^your_delimiter]*?)
com o seu_delimiter sendo o (s) personagem (s) imediatamente sucedendo a string que você deseja capturar.
Veja isso para uma discussão mais aprofundada: