Belisarius Posté 26 Octobre 2006 Posté 26 Octobre 2006 Bonjour, J'essaye de réaliser un petit script qui me parse un texte scientifique pour en récolter seulement les mots de plus de 3 lettres en enlevants tous les sigles mathématicophysique contenus dans ces textes . J'utilise la méthode suivante : $RegexSearch = array ('(pour|dans|avec|sont|cette|question|sous|mode|tout|elle|action|partie|note|doner|solution|montrer|page)', '((\s|\n).{1,3}(\s|\n))', '((\s|\n).{1,3}(\s|\n))', '(\n)', '([0-9])','([,\.:;\*\(\)\[\]\{\}])', '([\+\-=\?])', '(\')', '([\s]{1,10})', '((\s|\n).{1,3}(\s|\n))', '((\s|\n).{1,3}(\s|\n))');$RegexReplace = array (' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ');$out = preg_replace($RegexSearch, $RegexReplace, $text); Le texte provient de copier coller de PDF mais dans certains cas ça ne marche vraiment pas (erreurs PHP du genre Warning: Unexpected character in input: ) Des idées pour améliorer tout ça ? Existe-t-il des classes PHP destinée à ce genre de traitement ? Merci d'avance
xgamer Posté 26 Octobre 2006 Posté 26 Octobre 2006 faut deja que tu mete un filtre qui ne te garde que les A-Z a-z 0-9 je crois que c'est avec la fonction ereg , mais je ne sait pas si elle est presente sur php
Galeenet Posté 26 Octobre 2006 Posté 26 Octobre 2006 $input = '...ma chaine super compliquee...';preg_match_all('/([a-zA-Z]{2})([a-zA-Z]+)([ .,])/i',$input,$matches);echo '<pre>'; print_r($matches); echo '</pre>'; Ca devrait te donner quelques trucs... (la regex est améliorable)
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant