begin process at 2012 05 31 14:18:42
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Général

 > 

$regex = '`[arrache de cheveux]{0,100000}?`'


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

$regex = '`[arrache de cheveux]{0,100000}?`'

mardi 23 juin 2009 à 21:57:41 | $regex = '`[arrache de cheveux]{0,100000}?`'

kohntark

Membre Club
Salut,

Je prends la liberté de poster sur le forum regex (peu fréquenté semble t il, snif) et celui ci.

En cette fin de journée fatigante je galère un peu.
Voici la trame que j'essaie de parser :
<h3 class="machinTruc"><span class="trucBidule">tototata</span> - 140 db - excellent - truc-bidule - bidule machin</h3>

 <p class="mtruc" id="m2truc">
140 db, &eacute;tonnant, 8 pm, theodore<br />
Données bidule, truc (jazz)<br />
</p>
<p class="mtcFont2" id="mtcTextIntro2">


en noir : ce que je cherche à capturer (changeant, forcemment)
en bleu : les parties qui ne changent jamais
en rouge : ce qui fait que je vais devenir chauve plus vite que prévu

A savoir qu'il peut y avoir des retours à la ligne et autres caractères "blancs" aléatoires entre la cloture d'une balise et la suivante.

Le problème :
Les données en rouge peuvent prendre les formes suivantes :
140 db, &eacute;tonnant, 8 pm, theodore<br />
140 db, 8 pm, theodore<br />
140 db, &eacute;tonnant, 8 pm<br />
140 db, &eacute;tonnant, machinchose, 8 pm, theodore<br />
8 pm<br />
etc ... en fait le nombre de données, séparées par des virgules (et qui peuvent contenir des chiffres, des caractères spéciaux etc ... mais jamais de virgule), peut changer, avant comme après le 8 pm que je cherche à capturer.
Par ailleurs, pour faciliter grandement la chose, le 8 pm (qui peut également être 208 pm, 102 pm) n'est pas toujours présent.

Pour ceux qui suivent encore après cette magnifique tentative d'explication :
je cherche à trouver le nombre de pm (8 pm) que contient la chaîne, et savoir également, de façon fiable (of course) si elle n'est pas présente.

Les autres données (en noir) ne me pose pas de pb, de même qu'isoler la ligne rouge et appliquer un second traitement dessus pour sortir le 8 pm (mais je souhaiterai le faire en 1 seule regex)

... en espérant m'être bien expliqué (pas gagné, je sais )
Merci d'avance.


Cordialement,


Kohntark -

mardi 23 juin 2009 à 23:05:50 | Re : $regex = '`[arrache de cheveux]{0,100000}?`'

kankrelune

Membre Club
Aaaaah là y a du challenge... ça change... lol... .. . ;o)

Je suppose que c'est une regexp exécutée sous php... sinon précise le langage... ton 8pm aura toujours cette forme là (num+espace+pm) ou pas... c'est quoi une heure au format anglophone... .. ?

Par contre il y a des chances qu'il faille passer par 2 regexp une pour le (x)pm et une autre pour le reste... je jette un coup d'oeil quand j'aurais 2 minutes et te tiens au fil si je trouve quelque chose... .. .

@ tchaOo°

mercredi 24 juin 2009 à 00:15:39 | Re : $regex = '`[arrache de cheveux]{0,100000}?`'

kankrelune

Membre Club
essaye ça...

/\b([0-9]+\s*pm)\b/i

sur...

140 db, ligne 1, 8 pm, 10pm theodore<br />
db, 2, pm, ligne 2<br />
140 db, &eacute;tonnant, ligne 4, 100pm, theodore<br />
140db, ligne 40 pm<br />
opsus20pmjkl, ligne 3, 12 pm<br />
dbligne12pmplm<br />
m228 pm fgh
&eacute;tonnant, ligne 4, 29 pm, theodore<br />
140 db, 140 pmdb,ligne 3, 46pm<br />
10 pm<br />

ça match correctement...

array (
    0 => '8 pm',
    1 => '10pm',
    2 => '100pm',
    3 => '40 pm',
    4 => '12 pm',
    5 => '29 pm',
    6 => '46pm',
    7 => '10 pm',
  ),

si ça va pas précise plus en détail sous quelle forme peut se présenter ta variable et ton texte... .. .

@ tchaOo°
mercredi 24 juin 2009 à 00:18:14 | Re : $regex = '`[arrache de cheveux]{0,100000}?`'

kankrelune

Membre Club
Ah... si tu veux qu'il y ai absolument un espace entre ta valeur et on "pm" vire le * après le \s

D'ailleurs remplace le \s par un espace il serait capable de te matcher

plopmon text 20
pm remontext

^_^

@ tchaOo°
mercredi 24 juin 2009 à 09:31:06 | Re : $regex = '`[arrache de cheveux]{0,100000}?`'

nhervagault

Administrateur CodeS-SourceS
Je mets le lien avec ce post

http://regex.codes-sources.com/forum/sujet-REGEXP-CAPTURE-DONNEES_1330084.aspx#1


mercredi 24 juin 2009 à 09:37:50 | Re : $regex = '`[arrache de cheveux]{0,100000}?`'

syndrael

Alors, juste un passage en vitesse.. tu utilises SPL avec Tidy ?? Des fois ça aide pas mal.. mais attention PHP 5.3 obligé.
S.

mercredi 24 juin 2009 à 11:20:54 | Re : $regex = '`[arrache de cheveux]{0,100000}?`'

kankrelune

Membre Club
Je vois pas le rapport entre SPL/Tidy et la rexexp que veut kohntark... .. .

@ tchaOo°
mercredi 24 juin 2009 à 11:40:55 | Re : $regex = '`[arrache de cheveux]{0,100000}?`'

syndrael

Je pensais que SPL/Tidy aurait permis de trouver H3.. puis le Span juste après via la classe TidyNode récupérer le tototatat qu'il cherche.. mais ce n'était qu'une piste.. Et puis aussi que j'aime bien utiliser les dernières fonctions sorties.
Ce n'était qu'une piste..
S.

mercredi 24 juin 2009 à 12:03:59 | Re : $regex = '`[arrache de cheveux]{0,100000}?`'

kankrelune

Membre Club
Ah oki... .. . :o)

Oui effectivement on peut passer par le DOM aussi mais je ne pense pas que ce soit adapté dans cette situation... beaucoup trop de code là ou une regexp suffit je pense... .. .

@ tchaOo°
jeudi 25 juin 2009 à 22:56:17 | Re : $regex = '`[arrache de cheveux]{0,100000}?`'

kohntark

Membre Club
Merci pour ta réponse Syndrael.
Comme Kankrelune je ne pense pas que cela soit adapté. Cela étant je connais très peu.
Pour info j'ai répondu sur le forum regex : http://regex.codes-sources.com/forum/sujet-REGEXP-CAPTURE-DONNEES_1330084.aspx#1


Cordialement,

Kohntark -



Cette discussion est classée dans : db, regex, pm, eacute, tonnant


Répondre à ce message

Sujets en rapport avec ce message

AIDER MOI VITE SVP [ par g0belin ] Bon voila mon probleme dans le code si dessous y a une erreur que je n'ai pas trouver au bout de 4 heures aidez moi svp--------------ERREUR----------- Date probleme [ par g0belin ] Ben voila en fait je veux faire un agenda...je veux afficher seulement les entree dans la base pour le jour courant...MAIS sa marche PASsa m'affiche t urgent..DB.php lib [ par fatNugly ] bonjourquelqu'un aurait il une idee ou je pourrais trouverla class DB.php SVP c'est urgent et je suis legerement dans le caca!!merci aux ames chari urgent DB error: not found [ par fatNugly ] j'ai un probleme..j'essai de me connecter a ma bd, voici le coderequire_once("classes/sql2xml.php");require_once("classes/DB.php"); header("Content-ty Expressions régulieres [ par Nini ] Trouvez l'expression régulière (Syntaxe basée sur le PHP) et entrez la ci-dessous (en suivant l'exemple).Cette regex doit extraire le texte et le cont Retour d'un enregistrement précis dans un DB MySQL [ par philagui ] Bonjour,j'ai créé une DB MySQL grace au logiciel EasyPHP et à phpMyAdmin. Grace au script suivant j'ai réussi a faire afficher tous les enregistrement Parametre de ma classe connexion et connexion/deconnexion [ par sebos63 ] Bonjour, 1. J'ai une classe de connexion et je souhaiterais savoir où il est judicieux de spécifier les paramètres d'une connexion. (Dans mon construc Format d'une DB (Théorie/Conseil)? [ par Kenaghdar ] Bonjour tout le monde,Je me trouve confronté à un petit problème de conception pour une BDD destinée à stocker des recettes de cuisines. De manière sy Regex et caractères spéciaux [ par Totofweb ] BonjourJ'ai une variable, $texte. Dans celle-ci, je dois tester si elle contient [couleur=#123456] où 123465 est un nombre entier de 6 chiffres.J'ai e regex : validité d'une url absolue ou relative [ par Totofweb ] SalutJe fais mon module de bbcode, et je dois remplacer [lien=monurl.php] ou [lien=http://www.monurl.com/index.php?id=4] par j'ai essayé ceci :$texte


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,733 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales