Il n'y a qu'une exception : trois points consécutifs.
Soit une chaîne de caractères S, si l'on souhaite compter le nombre de phrases comme définies dans l'énoncé, c'est-à-dire zéro caractère quelconque ou plus - différents de ".", "?", et "!" - suivi(s) soit du caractère ".", soit "?", ou bien "!", on doit exclure de S les caractères différents de ces derniers après avoir considéré chaque point suivi de deux pour qu'un point, c'est-à-dire enlever les deux points suivants pour n'en garder qu'un.
Le nombre de phrases dans S est alors égal à la taille de la chaîne S, c'est-à-dire au nombre de caractères restants dans S.
Par contre, l'énoncé n'est pas clair, car il n'est pas dit :
- si une exception suivie d'une règle, ou bien l'inverse, doit être considérée comme vérifiant le motif d'une ou deux phrases vides, e.g., "...?" pourrait ne correspondre qu'à une seule phrase ;
- si l'exception a une précédence plus élevée que les règles ou non, e.g., si "..." doit être effectivement vu comme tel, ou alors comme ".. ." ou bien ". .." (identiques).
Trois solutions, la solution C étant la plus rapide sur des petits tests et la B la plus rapide des trois : https://gist.github.com/anonymous/7591895/raw/ac072911ffa02d57a8af18f2dbb0421a1a93677b/gistfile1.py