Usando um regex, você pode fazer o seguinte:
Encontre o que: ([^.!?"])\r\n
Substitua: $1
(um espaço à direita precisa ser adicionado, mas não aparece quando renderizado com Markdown)
Explicação
([^.!?"])
agrupará qualquer caractere que não seja .
, !
, ?
ou "
. Se você realmente quisesse permitir qualquer caractere alfanumérico, você poderia alterar isso para ([\w])
, que corresponderá a qualquer caractere de A
a Z
, maiúsculas ou minúsculas, qualquer número ou um sublinhado ( _
). Se você realmente está definido apenas com A
to Z
, você pode usar ([A-Za-z])
.
Os colchetes são usados para dizer essencialmente "permitir / não permitir os seguintes caracteres" (o uso de não permissão é especificado adicionando o caractere ^
logo após o colchete de abertura). Os colchetes também permitem a sintaxe acima de A-Z
, o que, como você pode esperar, permite qualquer coisa entre os dois valores fornecidos.
Finalmente, usando os parênteses em torno do agrupamento (que se aplica a todas as variações fornecidas acima), esse valor pode ser colocado novamente na string usando o espaço reservado $1
, que é discutido mais abaixo.
\r\n
corresponde à quebra de linha no Notepad ++ (em outros editores, uma quebra de linha pode ser \n
ou \r
).
No total, as duas seções da regex em si só combinam apenas um caractere que você especificou, seguido por uma quebra de linha.
A instrução $1
replace (novamente, certificando-se de adicionar um espaço depois) irá pegar o que nós combinamos na própria regex (o último caractere na linha que é seguido por uma quebra de linha) e colocá-lo de volta no line (isto é para que não removamos o personagem como aconteceria sem essa declaração). O espaço é simplesmente lá para garantir que quando as linhas são reunidas, as palavras ainda são distintas e não se fundem.