karnabal Posté 15 Février 2011 Posté 15 Février 2011 Bonjour, Besoin d'un coup de main pour une regex. 1 blabla bla1. -http://www.sartim-internet.com/ 2. -http://pixeltrame.com/blog/ 4. -http://www.rtum.com 5. -http://fatalz.com/ 25. -http://blartz.com/ 98- -http://www.traiaman.co.co 99- -http://blank.blogspot.com 100- -http://allinhome.com/ 101- -http://www.bootca.com/blog/ Je voudrais obtenir ça (bon, s'il reste la première ligne je prends quand même !) : -http://www.sartim-internet.com/ -http://pixeltrame.com/blog/ -http://www.rtum.com -http://fatalz.com/ -http://blartz.com/ -http://www.traiaman.co.co -http://blank.blogspot.com -http://allinhome.com/ -http://www.bootca.com/blog/ Voilà ma regex (([0-9]*)(\s|-\s))|([0-9]*)\. mais elle prend en compte tous les points ! Help! PS : les tirets avant les http ne sont mis ici que pour éviter de créer les liens hypertextes ; faire comme s'ils n'existaient pas pour la regex.
captain_torche Posté 15 Février 2011 Posté 15 Février 2011 Pour faire plus simple, tu ne veux pas supprimer tout ce qui serait avant l'espace ? genre (Sans tester, attention) : #(.* )(.*)#
karnabal Posté 15 Février 2011 Auteur Posté 15 Février 2011 Ouais, c'est pas bête, mais à vrai dire je cherchais à comprendre pourquoi tous les points étaient pris en compte. Ceci dit, je ne vois pas où sont mentionnés les espaces dans ta regex Marc.
captain_torche Posté 15 Février 2011 Posté 15 Février 2011 j'ai mis un espace "simple" à la fin de la première parenthèse capturante. On pourrait aussi mettre un "\s", mais en faisant attention de traiter chaque ligne séparément. Sinon, que veux-tu dire par "elle prend en compte tous les points" ?
karnabal Posté 15 Février 2011 Auteur Posté 15 Février 2011 Ok, je m'attendais effectivement à voir \s. Voilà pour les points, cf ci-dessous, ils sont tous en rouge, ce qu'il signifie qu'ils matchent avec la regex. Plop! Est-ce assez clair ?
captain_torche Posté 15 Février 2011 Posté 15 Février 2011 Alors, la regex la plus simple qu'on puisse faire là-dessus, serait sans nul doute : #(http.*)# (On récupère tout ce qui commence par http) Quant à la tienne, je n'avais pas compris que tu souhaitais supprimer les contenus correspondant au motif On pourrait envisager une regex de ce genre : #([0-9]+[\.|-]?\s*)# (On récupère tout ce qui est un ou plusieurs chiffres, suivis éventuellement par un point ou un tiret, ainsi que par un nombre indéterminé d'espaces). [font=verdana,]http://lumadis.be/regex/test_regex.php?id=673
karnabal Posté 15 Février 2011 Auteur Posté 15 Février 2011 Merci pour ton aide et tes explications très complètes Marc ! A relire, avec ta description, ça semble simple comme ça.
alexfromfrance Posté 22 Février 2011 Posté 22 Février 2011 (modifié) Si vous recherchez une regex plus restrictive pour une URL, vous pouvez aussi utiliser celle-ci qui est assez répandue et qui permet l'insertion d'un numéro de port dans la requête. http://([^/:]+(\d+))?)(/.*)? Cela permet par exemple http://www.domain.co.uk:8181/pathto/file?p=42, sans pour autant laisser filtrer certains URLs incorrectes. Modifié 22 Février 2011 par Patrick La publicité est interdite sur le Hub
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant