La difficulté est d'identifier le début d'une phrase.
Si je considère que le point suivi d'un ou plusieurs espace(s) puis d'une lettre quelconque délimite un début de phrase, je peux faire quelque chose comme ceci:
1 2 3
| my $c = "toto. titi. tutu. tata.";
$c =~ s/(\.\s+\w)/uc($1)/ge;
print $c, "\n"; |
Ce qui m'affiche:
Comme on peut le voir, cette méthode simpliste marche, sauf pour la première phrase qui n'est évidemment pas précédée d'un point.
En modifiant l'expression régulière:
$c =~ s/(\w)(\w+\.)/uc($1).$2/ge
j'obtiens un progrès:
Mais pas sûr que ça marche dans des cas plus compliqués...
Partager