Conversão de maiúsculas e minúsculas, comparação, contagem, escape e limpeza de espaços em branco para texto.
Listas de texto chegam em mau estado. Uma coluna de e-mail colada de uma planilha possui espaços à direita em cada linha. Um trecho de log possui linhas duplicadas. Uma lista copiada de PDF possui quebras de linha no meio das frases. Nenhum desses são problemas difíceis, mas executá-los manualmente em quatrocentas linhas é uma pena, e buscar uma linguagem de script para uma limpeza única é mais lento do que parece.
Tudo aqui funciona com base no texto da caixa acima. Cada botão é uma transformação, aplicada a todo o texto, e cada uma delas pode ser desfeita. Trabalhe em pequenos passos e verifique as contagens à medida que avança.
A ordem é mais importante do que as pessoas esperam. Cortar antes de desduplicar é quase sempre correto: duas linhas que diferem apenas por um espaço à direita não são duplicadas até que você as corte, portanto, desduplicar primeiro deixa-as silenciosamente no lugar.
Da mesma forma, remova as linhas vazias antes de classificar se desejar um resultado compacto, pois as linhas em branco são classificadas em uma extremidade e deixam um espaço que você deve remover de qualquer maneira.
O painel de estatísticas é atualizado conforme você digita. A maior parte é autoexplicativa, mas a contagem de caracteres merece uma observação, porque é o número que a maioria das ferramentas erra.
Os computadores armazenam texto como uma sequência de unidades de código, e um único caractere visível pode ocupar vários deles. O emoji 👩💻 é algo que você pode ver, mas é construído a partir de um emoji de mulher, um marceneiro invisível e um emoji de laptop – cinco unidades de código no total. Um contador ingênuo relata 5. Esta ferramenta conta clusters de grafemas, que é o nome técnico para "o que uma pessoa chamaria de um personagem", por isso reporta 1.
A mesma lógica se aplica a caracteres acentuados escritos com marcas de combinação e para sinalizar emojis. Se você estiver contando com um limite imposto por um sistema diferente — uma coluna de banco de dados, um gateway SMS, uma plataforma social — esteja ciente de que o outro sistema pode contar de forma diferente.
Os botões de extração extraem e-mails, URLs ou números de texto não estruturado e fornecem-nos uma lista limpa, desduplicada e em ordem de aparição.
A extração URL retira a pontuação da frase final, então "visit https://example.com." produz o URL sem o ponto final e para em um parêntese de fechamento para que um URL entre colchetes saia limpo.
A correspondência de e-mail é deliberadamente pragmática e não exaustiva. A especificação completa para um endereço de e-mail válido permite construções que essencialmente ninguém usa, e combinar todas elas produz resultados piores em texto real do que um padrão mais restrito.
Converter “olá mundo” em camelCase é fácil. A conversão de parseHTTPResponse2Json é onde as ferramentas discordam, porque os limites estão implícitos e não marcados.
Esta ferramenta se divide em três sinais: qualquer série de caracteres que não sejam letras ou dígitos (espaços, hifens, sublinhados, pontuação); uma letra minúscula ou dígito seguido de uma letra maiúscula; e uma série de letras maiúsculas seguidas por um par de letras maiúsculas e minúsculas. Essa última regra é o que separa corretamente "HTTP" de "Response" em parseHTTPResponse, em vez de produzir p-a-r-s-e-h-t-t-p-response ou tratar todo o acrônimo como uma palavra colada na próxima.
O resultado é que parseHTTPResponse se torna parse_http_response no caso da cobra e parse-http-response no caso do kebab, que é o que a maioria dos guias de estilo espera.
A caixa do título coloca a primeira letra de cada palavra em maiúscula e o resto em minúscula, então "hello WORLD" se torna "Hello World". Ele não conhece as regras do guia de estilo que mantêm palavras curtas como "de" e "o" em minúsculas, porque essas regras variam de acordo com a publicação e aplicá-las silenciosamente seria um palpite.
A caixa da frase coloca tudo em minúscula e, em seguida, coloca a primeira letra de cada frase em maiúscula, detectando o final da frase em pontos finais, pontos de interrogação e de exclamação, incluindo seus equivalentes CJK de largura total. É a escolha certa para texto que chegou em ALL CAPS.
A transformação slug produz um identificador seguro URL: letras minúsculas, acentos dobrados em suas letras base e cada série de caracteres não alfanuméricos substituídos por um único hífen.
A dobra acentuada é feita decompondo os caracteres e removendo as marcas de combinação, de modo que "Café Crème" se torne "café-creme" em vez de "caf-cr-me". Eliminar completamente as letras acentuadas é um bug comum em geradores de slug e confunde nomes.
Os separadores iniciais e finais são removidos e emojis e outros símbolos são removidos, pois não têm representação URL útil.
Localizar e substituir tem dois modos. O modo literal - o padrão - escapa de todos os caracteres especiais, portanto, pesquisar por "a.b" encontra exatamente "a.b" e não "axb". O modo Regex passa seu padrão como está.
Cada padrão digitado é compilado dentro de um guarda. Se for inválido, você receberá uma mensagem explicando o problema e seu texto permanecerá intacto. Isso é mais importante do que parece: digitar uma expressão regular é um processo incremental, e um "(" solitário é um estado intermediário perfeitamente normal no caminho para um padrão de trabalho. Uma ferramenta que gera um erro não tratado naquele momento - ou pior, limpa a caixa - é inutilizável.
No modo regex, a substituição suporta grupos de captura com $1, $2 e assim por diante. A reformatação de datas é o exemplo canônico: encontre (\d{4})-(\d{2})-(\d{2}) e substitua por $3/$2/$1 para transformar 2024-01-02 em 02/01/2024.
A opção "Palavra inteira" envolve sua pesquisa em limites de palavras, portanto, pesquisar por "gato" corresponde à palavra gato, mas não ao "gato" dentro de "concatenar".
Compõe com ambos os modos. No modo literal, seu texto é escapado primeiro e depois delimitado; no modo regex, todo o seu padrão é limitado como um grupo, portanto, alternâncias como cat|dog se comportam como seria de esperar, em vez de vincular o limite apenas ao primeiro ramo.