cs_nebenobo
Messages postés16Date d'inscriptionmardi 9 juin 2009StatutMembreDernière intervention 3 décembre 2013
-
5 sept. 2012 à 23:50
cs_nebenobo
Messages postés16Date d'inscriptionmardi 9 juin 2009StatutMembreDernière intervention 3 décembre 2013
-
9 sept. 2012 à 12:21
Salut tout le monde,
Quelqu'un connaîtrait-il un script PHP (genre avec des regex) pour corriger la ponctuation d'un texte (position des espaces avant/après les points, virgules, guillemets, parenthèses etc...) ?
J'ai commencé à en faire un mais je suis un peu limite en regex...
Merci d'avance !
Nebenobo
A voir également:
Correcteur ponctuation
Correcteur de virgule - Meilleures réponses
Correcteur de ponctuation virgule - Meilleures réponses
cs_nebenobo
Messages postés16Date d'inscriptionmardi 9 juin 2009StatutMembreDernière intervention 3 décembre 2013 7 sept. 2012 à 21:05
ok bon après quelques heures de prise de chou j'arrive à un résultat nickel (pour ce que j'ai pu tester) sauf que la dernière regex de mon tableau ne marche qu'à moitié, j'aimerais bien comprendre pourquoi, si quelqu'un pouvait m'aider...
Si vous voyez autre chose qui ne marche pas correctement ou une optimisation, n'hésitez pas !
function corrige_ponct($string) {
$tab1 = array(
'`\s+`',//supprimer les espaces multiples
'`(:|;|\?|!)`',//autre ponctuation : espace avant et après
'`(\?|!)\s*(["\)])`',//autre ponctuation : pas d'espace après si suivi d'un guillemet ou parenthèse fermante
'`"\s*([^"]+)\s*"`',//guillemets : espace avant et après mais pas à l'intérieur
'`"\s*([^"]+)\s*"([\.,\)])`',//guillemets : pas d'espace après si suivi de point, virgule, espace ou parenthèse fermante
'`\(\s*([^\)]+)\s*\)`',//parenthèses : espace avant et après mais pas à l'intérieur
'`\(\s*([^\)]+)\s*\)([\s\.\),"])`',//parenthèses : pas d'espace après si suivie de point, virgule, espace, parenthèse fermante ou guillemet
'`\s*(\.|,)`',//point et virgule : espace après, pas avant
'`\s*\'\s*`',//apostrophes : pas d'espace avant ni après
'`([!\?\.])\s+([!\?\.])`');//supprimer les espaces entre point, point d'interrogation ou d'exclamation (ex : ? !! devient ?!!)
$tab2 = array(
' ',//espaces multiples
' $1 ',//autre ponctuation
' $1$2',//autre ponctuation 2ème partie
' "$1" ',//guillemets
' "$1"$2',//guillemets 2ème partie
' ($1) ',//parenthèses
' ($1)$2',//parenthèses 2ème partie
'$1 ',//point et virgule
'\'',//apostrophes
'$1$2');//supprimer les espaces entre caractères de ponctuation
Vous pouvez tester avec le texte très mal ponctué suivant :
$texte = "En place pour commencer ? !! Une recette pour les gourmands!
Faire fondre le chocolat et le beurre( moi, j'aime bien gagner du temps alors je place le bol contenant ces deux ingrédients dans le micro onde pendant 2 minutes, ça y est c'est fondu!!). Bien mélanger les jaunes d'oeuf et le sucre afin d'obtenir un mélange blanc et mousseux à souhait! Alors là, super facile!! on ajoute le mélange "choco-beurre!". fondu, les amandes en poudre, la farine et on bat les blancs en neige très serrés( ils doivent former des mini vagues en surface!)! on va les incorporer au mélange sans trop les bousculer, à l'aide d'une "maryse"( on peut se dire: "Mais qu'est-ce que c'est?"... Et bien, une " maryse"est une spatule souple permettant de racler le fond des récipients!!) On prend un moule a manqué, on disperse les amandes effilées sur le fond bien beurré et on cuit le gâteau 45 minutes dans un four à 120°C environ. Voilà, vous pouvez dresser le gâteau sur une assiette. Bonne dégustation!";