|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre à l'essai
![]() Inscription : novembre 2006 Messages : 111 ![]() |
Hé Hé Bonjour,
J'ai un texte ou je dois exécuter une action à chaque fois que je rencontre un certain mot. Exemple: à chaque fois que je croise le mot ordinateur dans un texte, j'incrémente un compteur. Je réussi, mais seulement pour le premier mot rencontré et mon script s'arrête à cet instant. Quelqu'un peut il me donner une piste ? Merci |
|
|
00
|
|
|
#2 |
|
Membre chevronné
![]() Inscription : février 2005 Messages : 671 ![]() |
Oui bien sur....
A condition que tu donnes le bout de code qui va avec parce que là c'est très obscur comme concept... Mais bon... A mon avis tu dois avoir un modele de recherche pour expression régulière. Jette un oeuil ici ( en regardant bien le menu de gauche et en lisant le tout) : http://fr3.php.net/manual/fr/referen....modifiers.php Ou alors poste nous le bout de code @+ cadou |
|
|
00
|
|
|
#3 |
|
Futur Membre du Club
![]() Inscription : mai 2004 Messages : 21 ![]() |
substr_count -- Compte le nombre d'occurrences de segments dans une chaîne
http://fr3.php.net/manual/fr/function.substr-count.php |
|
|
00
|
|
|
#4 |
|
Membre à l'essai
![]() Inscription : novembre 2006 Messages : 111 ![]() |
En faite, ce que je veux faire isoler une partie d'un texte à la rencontre d'un mot.
Exemple: lorsque je rencontre le mot ordinateur, je veux isoler (mettre dans une variable ou autre) tout le texte qui suit jusqu'à l'autre occurence du mot ordinateur ou je ferais la même chose jusqu'à la fin de mon texte. je suis un peu dérouté ![]() Merci |
|
|
00
|
|
|
#5 | ||
|
Membre chevronné
![]() Inscription : février 2005 Messages : 671 ![]() |
Hello,
La solution est dans le lien que je t'ai donné plus haut. La fonction a utiliser est preg_match_all exemple : Code :
Pour plus d'infos, regarde le lien que je t'ai mis plus haut @+ cadou |
||
|
|
00
|
|
|
#6 |
|
Membre à l'essai
![]() Inscription : novembre 2006 Messages : 111 ![]() |
Je ne suis pas sûr de comprendre coudal56. apres avoir fait un test, je constate que cette facon me renvoie sous forme de tableaux toutes les occurence de l'expression recherché et non pas ce qui se trouve entre ces occurences.
Est-ce que je me trompe ? |
|
|
00
|
|
|
#7 |
|
Membre à l'essai
![]() Inscription : novembre 2006 Messages : 111 ![]() |
toujours rien. Je n'ai pas d'erreur. Il m'affiche Array... on dirait qu'il n'y a rien dans mon tableau.
|
|
|
00
|
|
|
#8 | ||
|
Membre Expert
![]() Inscription : octobre 2006 Messages : 1 325 ![]() |
Edit:Voila la solution:
Code :
|
||
|
|
00
|
|
|
#9 |
|
Membre à l'essai
![]() Inscription : novembre 2006 Messages : 111 ![]() |
Merci j'ai trouvé.
preg_match_all($expression, $rapport, $data, PREG_SET_ORDER); print_r($data[0][1]); merci à tout le monde. J'ai cependant un autre petit problème. Lorsque j'ai plusieur fois l'occurence du mot recherché, il n'a pas l'air a voir ceux entre ceux des 2 extrimité. Exemple: MonMot blablabla MonMot blablabla MonMot...... il ne va prendre que le premier et le dernier. |
|
|
00
|
|
|
#10 |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Rajouter l'option non gourmand (flag U) car par défaut les expressions régulières chercheront à correspondre à la chaîne la plus longue.
Julp. |
|
|
00
|
|
|
#11 |
|
Membre chevronné
![]() Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 836 ![]() |
Juste une question mais si il y a ordinateur au debut mais plus rien jusqu'a la fin du texte ?
__________________
Dire Straits, Bob Dylan, Led Zeppelin, the Who, Pink Floyd, AC/DC, Guns & Roses, the Doors, ... |
|
|
00
|
|
|
#12 |
|
Membre à l'essai
![]() Inscription : novembre 2006 Messages : 111 ![]() |
bonne question...dailleurs c'est le problème que j'ai. Ta une solution ? je croyais que c'était parce qu'il yavait un occurence entre 2.
|
|
|
00
|
|
|
#13 |
|
Membre chevronné
![]() Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 836 ![]() |
Je posais ca au pro des regex lol j'ai pas un niveau tres prononcé dans ce domaine
__________________
Dire Straits, Bob Dylan, Led Zeppelin, the Who, Pink Floyd, AC/DC, Guns & Roses, the Doors, ... |
|
|
00
|
|
|
#14 |
|
Membre à l'essai
![]() Inscription : novembre 2006 Messages : 111 ![]() |
Alors à vous de jouer les pros....svp
|
|
|
00
|
|
|
#15 |
|
Membre expérimenté
![]() Inscription : septembre 2006 Messages : 685 ![]() |
Pourquoi ne pas utiliser un explode tout simplement, enfin c'est qu'une suggestion
Sinon, avec un preg_split peut-être. |
|
|
00
|
|
|
#16 |
|
Membre à l'essai
![]() Inscription : novembre 2006 Messages : 111 ![]() |
Pour ceux qui viennent de se joindre, je ré-explique mon problème:
Exemple: To blablabla blablabla To blablablabla blalbalba To les 2 paragraphes de blablabla doivent être séparé, dans un tableau probable, parce que je veux décortiquer ces 2 paragraphe voici ce que j'ai pour le moment: $expression = '#'.$debut.'(.*)'.$fin.'#Us'; preg_match_all($expression, $rapport, $data, PREG_SET_ORDER); print_r($data[0][1]); Ceci fonctionne, mais lorsque je veux aller chercher la derniere partie, elle ne fait pas parti du tableau. Help! Merci |
|
|
00
|
|
|
#17 | ||
|
Membre Expert
![]() Inscription : octobre 2006 Messages : 1 325 ![]() |
dans ce cas:
Code :
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com