Quero incluir uma funcionalidade de renomeação de arquivo em lote no meu aplicativo. Um usuário pode digitar um padrão de nome de arquivo de destino e (depois de substituir alguns curingas no padrão), preciso verificar se ele será um nome de arquivo legal no Windows. Eu tentei usar expressões regulares como [a-zA-Z0-9_]+
essa, mas ela não inclui muitos caracteres nacionais específicos de vários idiomas (por exemplo, tremas e assim por diante). Qual é a melhor maneira de fazer essa verificação?