Como remover quebras de linha do texto
Cole o texto no Text Toolkit. Se você quiser um bloco contínuo, mude o local e substitua para o modo Regex, encontre \s*\n\s* e substitua-o por um único espaço.
Se você quiser manter as quebras de parágrafo, use primeiro aparar linhas, depois encontre (?<!\n)\n(?!\n) e substitua por um espaço. Esse padrão corresponde a uma nova linha que não tem nova linha em nenhum dos lados - ou seja, uma quebra no meio do parágrafo - e deixa as novas linhas duplas entre os parágrafos em paz.
Por que o texto chega com quebras de linha rígidas
Copiar de um PDF é a fonte usual. Um PDF não possui parágrafos — possui texto posicionado em uma página — portanto, a cópia insere uma nova linha sempre que uma linha visual termina. Um parágrafo que ocupa seis linhas na página chega como seis linhas de texto.
E-mail de texto simples é outra fonte comum. Os clientes de e-mail mais antigos empacotavam mensagens de saída com 72 ou 76 caracteres, e as respostas entre aspas preservam essas quebras indefinidamente.
A característica distintiva é que as quebras ocorrem no meio da frase, aproximadamente na mesma coluna, e não no final da frase. Isso é o que os torna mecanicamente removíveis: quebras de parágrafo reais são separadas por uma linha BLANK, e quebras no meio do parágrafo não. Tudo abaixo depende dessa diferença.
Mantendo os parágrafos: o método de padrão único
O padrão diz: uma nova linha que não é precedida por uma nova linha e nem seguida por uma. Uma quebra no meio do parágrafo corresponde; cada nova linha em uma quebra dupla tem uma nova linha de um lado, portanto nenhuma corresponde.
Se a ferramenta rejeitar o padrão com erro, seu navegador não oferece suporte a lookbehind. Nesse caso, use a substituição mais simples \s*\n\s* para juntar tudo e reintroduza as quebras de parágrafo onde quer que você cole o texto.
- Pressione Cortar linhas. Isso remove os espaços em branco à esquerda e à direita de cada linha, de modo que um separador de parágrafo se torne exatamente duas novas linhas em vez de uma nova linha, um espaço perdido e outra nova linha.
- Marque Regex.
- Encontre (?<!\n)\n(?!\n) e substitua por um único espaço. Pressione Substituir tudo.
- Verifique a contagem. Deve corresponder aproximadamente ao número de linhas quebradas e deve ser menor que a contagem total de linhas em aproximadamente o número de parágrafos.
Juntando tudo em um bloco
Para uma cotação, uma consulta de pesquisa ou qualquer coisa que vá para um único campo, você não precisa proteger os parágrafos.
Modo Regex, encontre \s*\n\s* e substitua por um único espaço. O \s* em ambos os lados absorve o recuo e os espaços finais ao mesmo tempo, portanto, você não precisa de uma limpeza separada de espaço duplo posteriormente.
Terminais de linha do Windows e outras coisas que dão errado
- Se uma substituição em \n reportar zero ou deixar caracteres perdidos, o texto terá finais de linha do Windows. Encontre \r e substitua-o por nada primeiro; que converte CRLF em LF e os padrões acima se comportam.
- Palavras hifenizadas divididas em linhas – “inter-” e depois “nacional” – tornam-se “internacionais” após serem unidas. Encontre "-" e substitua por nada, mas leia a contagem primeiro, porque esse padrão também corresponde a travessões legítimos em prosa.
- Espaços duplos podem sobreviver se uma linha terminar com um espaço e você usar o padrão lookbehind. Encontre dois espaços, substitua por um e execute-o duas vezes.
- Texto sem linhas em branco entre parágrafos não possui sinal para proteção. Nenhum padrão pode recuperar um limite de parágrafo que nunca foi codificado e você terá que inseri-lo novamente manualmente.
Duas coisas sobre o modo regex desta ferramenta
Os padrões são compilados dentro de uma guarda. Um padrão inválido fornece uma mensagem de erro e deixa seu texto exatamente como estava - um colchete aberto solitário é um estado intermediário normal durante a digitação e não deve destruir seu trabalho.
Os padrões são compilados com o sinalizador global e sem os sinalizadores multilinha ou ponto. Portanto, uma substituição sempre se aplica em todos os lugares; o ponto não corresponde a uma nova linha; e ^ e $ fixam todo o texto em vez de cada linha. Para agir por linha, combine explicitamente a nova linha, que é o que os padrões acima fazem.
Os campos localizar e substituir são entradas de linha única. Você pode MATCH uma nova linha com \n, mas não pode INSERT uma - um \n digitado no campo de substituição é inserido como uma barra invertida seguida por um n. É por isso que o método acima nunca precisa colocar uma nova linha de volta.
Exemplo resolvido: dois parágrafos copiados de um PDF
O texto colado tem uma quebra após cada linha impressa e uma linha em branco entre os dois parágrafos. Usando / para uma nova linha, fica assim:
"O comitê se reuniu na terça-feira para analisar a proposta apresentada em março. Vários membros levantaram preocupações sobre o cronograma. // Uma versão revisada será distribuída antes da próxima reunião."
Há cinco novas linhas no total: quatro quebras de linha e uma quebra de parágrafo escritas como duas novas linhas consecutivas. Quatro dos cinco deveriam ir.
- Pressione Cortar linhas.
- Marque Regex, encontre (?<!\n)\n(?!\n), substitua por um espaço, Substitua tudo.
- Leia a contagem relatada.
Resultado: A ferramenta relata substituições 3 — as três quebras de parágrafo no meio — e o resultado são dois parágrafos, cada um em uma linha contínua, ainda separados por uma linha em branco. Usar \s*\n\s* teria relatado 4 e mesclado os dois parágrafos em um, que é a resposta certa para uma citação e a errada aqui.
Abra a ferramenta
Localização e substituição literal e regex com um histórico de desfazer e uma contagem de substituições após cada etapa. Nada que você cola é enviado para lugar nenhum.
O que isso não cobre
- Isso é localizar e substituir, não refluir. Ele não consegue diferenciar uma quebra no meio de uma frase de uma linha deliberadamente curta, como um bloco de endereço, um versículo ou uma lista com marcadores.
- O campo de substituição não pode inserir uma nova linha, portanto, qualquer técnica que precise colocar quebras de linha deverá terminar em outro lugar.
- O padrão lookbehind precisa de um navegador que suporte asserções lookbehind. Um navegador mais antigo relata um erro de padrão inválido em vez de falhar silenciosamente.
- O processamento é executado no thread principal, portanto, um documento muito grande pode pausar brevemente a interface durante uma transformação.
- Desfazer está limitado às últimas operações 50.
- Nada é salvo entre as visitas. Recarregar a página descarta seu trabalho, por design.