Como Seth explicou, para realmente fazer isso de forma adequada, exigiria análise de linguagem natural. Por enquanto, isso só está disponível através de implementações especializadas como o analisador de Stanford , mas não como plugins do Notepad ++. Mas, dadas algumas suposições básicas, acho que você poderia contorná-lo usando expressões regex simples.
Eu começaria fazendo a suposição de que as frases que você deseja dividir terminam com '.', depois, têm um espaço e, em seguida, uma letra maiúscula. Isso não será perfeito, mas evita os parênteses e a abreviação na maioria dos casos .
Então ...
\. [A-Z]
E talvez, se as frases começarem com um número ...
\. [A-Z\d]
Então, talvez para torná-lo um pouco mais à prova de espaço em branco e lidar com os parênteses ainda melhor:
\.[^)\]}]*?\s+[^)\]}]*?[A-Z\d]
- \ s + - para corresponder a um ou mais caracteres em branco
- [^)]}] *? para garantir que não haja colchetes de fechamento atrás do. ou o espaço em branco
Acho que você pode brincar um pouco mais com isso, dependendo do seu caso de uso ...
Editar:
Eu estava pensando um pouco mais sobre isso. Eu acho que você também poderia supor que, enquanto uma sentença pode começar com apenas uma letra (como a palavra 'eu' ou 'A'), é improvável que termine em uma palavra de uma letra (em inglês).
Então você poderia usar
[a-zA-Z]{2}\.[^)\]}]*?\s+[^)\]}]*?[A-Z\d]
Como uma estratégia geral, tudo se resume a olhar para trás e avançar, para coisas que você espera ou não encontrar no final ou no início de uma frase.