Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/03/2006, 11h49   #1
Candidat au titre de Membre du Club
 
Inscription : mars 2006
Messages : 43
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 43
Points : 10
Points : 10
Par défaut Retours à la ligne

Bonjour, j'ai un petit probleme d'expression regulieres. En fait, je dois matcher plusieurs variables dans un code mais j'ai un probleme avec des auts de ligne.
Voila le code,

Code :
1
2
3
4
5
6
7
8
9
10
11
Colonie</th>
<th0style= white-space:0nowrap; 0width= 30 >
0
000</th>0
0000<th0width= 30 >
 
0
000</th>
0000<th0width= 150 >0
 
00000<a0style= cursor:0pointer; 0onmouseover
C'est le retour a la ligne qui doit faire planter le truc. Vous auriez une idée pour quand même matcher ses deux expressions et passer outre ce retour a la ligne?

Merci d'avance


admettons que je match avec l'expression suivante : /(Colonie)/

Pas de probleme, ca passe

si je catch avec : /(nmouseover)/

Pas de probleme.

Par contre si je veux catcher les deux en même temps, la ca marche plus. Par exemple :

/(Colonie).+(nmouseover)/


Je pense que ca vient de cette partie la du code :
Code :
1
2
3
4
5
6
7
 
000</th>0
0000<th0width= 30 >
 
0
000</th>
0000<th0width=
auriez vous ne idée pour matcher ses deux expressions en une fois et passer outre le retour a la ligne ?
Bargaroth est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2006, 11h54   #2
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Salut

C'est une histoire de modificateur, je crois que c'est le "s". Pas sûr.
Vu que tu matches des chaînes fixes, je doute que tu aies besoin des parenthèses capturantes :
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2006, 11h57   #3
Candidat au titre de Membre du Club
 
Inscription : mars 2006
Messages : 43
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 43
Points : 10
Points : 10
nan j'ai matché des chaines fixes sur l'exemple ^^ Pour plus de simplicité. Je vais essayer de rajouter un s derriere les /

Merci

edit:Je viens d'essayer et il me dit que l'expression n'est pas conforme.
Bargaroth est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2006, 12h11   #4
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
 
$string = 'Colonie&lt;/th&gt;
&lt;th0style= white-space:0nowrap; 0width= 30 &gt;
0
000&lt;/th&gt;0
0000&lt;th0width= 30 &gt;
 
0
000&lt;/th&gt;
0000&lt;th0width= 150 &gt;0
 
00000&lt;a0style= cursor:0pointer; 0onmouseover';
 
echo preg_match_all('/Colonie.+nmouseover/s', $string, $matches, PREG_SET_ORDER);
 
/*echo '<pre>';
print_r($matches);
echo '<pre>';*/
 
?>
Fonctionne comme prévu.
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2006, 12h13   #5
Modérateur
 
Avatar de Nesmontou
 
Homme Benjamin PREVOT
Architecte de système d'information
Inscription : septembre 2004
Messages : 1 568
Détails du profil
Informations personnelles :
Nom : Homme Benjamin PREVOT
Âge : 30
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Architecte de système d'information
Secteur : Finance

Informations forums :
Inscription : septembre 2004
Messages : 1 568
Points : 2 494
Points : 2 494
Salut, pour le multi-ligne c'est m, tu trouveras toutes les infos ici : http://www.php.net/manual/fr/referen....modifiers.php

Bon développpement
__________________
Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN

F.A.Q. : Java, PHP, (X)HTML / CSS

N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème
Nesmontou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2006, 12h16   #6
Candidat au titre de Membre du Club
 
Inscription : mars 2006
Messages : 43
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 43
Points : 10
Points : 10
merci bien ^^

Je vais continuer du coup. Avec tout ca, je devrais m'en sortir
Bargaroth est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2006, 12h17   #7
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Citation:
Envoyé par Nesmontou
Salut, pour le multi-ligne c'est m
Perso je veux bien mais, si on prend l'exemple que j'ai donné, ça affiche "0" avec le m et "1" avec le s...
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2006, 12h22   #8
Modérateur
 
Avatar de Nesmontou
 
Homme Benjamin PREVOT
Architecte de système d'information
Inscription : septembre 2004
Messages : 1 568
Détails du profil
Informations personnelles :
Nom : Homme Benjamin PREVOT
Âge : 30
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Architecte de système d'information
Secteur : Finance

Informations forums :
Inscription : septembre 2004
Messages : 1 568
Points : 2 494
Points : 2 494
Citation:
Envoyé par Kirkis
Perso je veux bien mais, si on prend l'exemple que j'ai donné, ça affiche "0" avec le m et "1" avec le s...
En fait, il me semble qu'il faut mettre les 2 (perso, c'est ce que je fais et je rajoute i pour ne pas tenir compte de la casse) :
- s pour que . remplace n'importe quel caractère
- m pour le multi-ligne
:
__________________
Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN

F.A.Q. : Java, PHP, (X)HTML / CSS

N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème
Nesmontou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/03/2006, 20h01   #9
Membre expérimenté
 
Avatar de FMaz
 
Inscription : mars 2005
Messages : 648
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 648
Points : 527
Points : 527
le . représente tout les caractères SAUF les sauts de lignes.

donc, ton expression devrait être:
/(Colonie)(.|\n|\r)+(nmouseover)/
FMaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/03/2006, 01h30   #10
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Citation:
Envoyé par FMaz
le . représente tout les caractères SAUF les sauts de lignes.

donc, ton expression devrait être:
/(Colonie)(.|\n|\r)+(nmouseover)/
C'est bien à cet effet qu'a été créé le modificateur "s" cité plus haut, il n'y a donc pas besoin de se compliquer la vie à gérer les cas particuliers, en l'occurence \n et \r
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h28.


 
 
 
 
Partenaires

Hébergement Web