Je suis en train de mettre à jour un programme qui corrige des sous-titres. Jusqu'à présent, je m'en suis sorti sans utiliser d'expressions régulières, mais le dernier problème qui s'est présenté pourrait bénéficier de leur utilisation. (Je l'ai déjà résolu sans expressions régulières, mais c'est une méthode très peu optimisée qui ralentit considérablement mon programme).Problème complexe. Besoin d'aide avec l'expression régulière remplacer
TL; DR;
Je suis en train de faire les travaux suivants:
Je veux que tous les cas de:
"! ."
, "!."
et "! . "
à devenir: "!"
à moins que le point est suivi d'un autre point, dans lequel cas je veux tous les cas de:
"!.."
, "! .."
, "! . . "
et "!. ."
à devenir: "!..."
J'ai essayé ce code:
the_str = Regex.Replace(the_str, "\\! \\. [^.]", "\\! [^.]");
qui se rapproche de la première partie de ce que je veux faire, mais je ne peux pas faire le caractère [^.]
de la chaîne de remplacement être le même caractère que le un dans la chaîne originale ... S'il vous plaît, aidez!
Je suis intéressé par les deux C implémentations # et PHP ...
Votre deuxième 'preg_replace' ne correspondra-t-il pas aux remplacements effectués dans le premier? - Ça ne fait rien. Je vois pourquoi ça ne va pas maintenant. – BBonifield
déjà fixé que;) mais oui, la première version serait. – NikiC
Merci, ça a marché comme un charme! – funkybomber