expressions régulières

Bonjour tout le monde.

J'ai mis en place une reconnaissance via des expressions régulières simples.
Je cherche un mot complet sur un titre et ça marche bien.

Par contre, si j'ai 2 mots séparés par un espace... que dalle !
{titre == mot1 mot2} ne fonctionne pas.

Dans le debug, le résultat de la boucle est ok.

N'étant pas familier des expressions régulières, j'imagine que je dois échapper l'espace et l'annoncer autrement, mais comment ?

Merci d'avance !

Valentin

Valentin GUENICHON a écrit :

Bonjour tout le monde.

J'ai mis en place une reconnaissance via des expressions régulières simples.
Je cherche un mot complet sur un titre et ça marche bien.

Par contre, si j'ai 2 mots séparés par un espace... que dalle !
{titre == mot1 mot2} ne fonctionne pas.

{titre == ^(mot1\ mot2)$ } un truc du genre ?

En fait, le problème est un peu différent.
J'ai deux titres : Logiciels libres et Logiciels commerciaux

J'ai donc 2 titre contenant le mot Logiciels.

Si je fais {titre == Logiciels}, le critère s'applique et la boucle me renvoie les 2 articles
Si je fais {titre == libres}, la boucle reste vide...

Le 16 juil. 07 à 17:33, Yoann NOGUES a écrit :

Valentin GUENICHON a écrit :

Bonjour tout le monde.

J'ai mis en place une reconnaissance via des expressions régulières simples.
Je cherche un mot complet sur un titre et ça marche bien.

Par contre, si j'ai 2 mots séparés par un espace... que dalle !
{titre == mot1 mot2} ne fonctionne pas.

{titre == ^(mot1\ mot2)$ } un truc du genre ?

Au final, la question porte sur quoi ? Enfin, vous cherchez à tester quoi ?

Le proposition de Yoann ==> {titre==^mot1} permet de spécifier que le titre débute par mot1.

J’ai peut-être zappé quelque chose, mais je n’ai pas vu ce que vous recherchiez précisément, et sans le savoir, on ne peut pas construire d’expressions régulières précises =)

Un bon site pour débutant cependant : http://www.expreg.com/


Julien R

Valentin GUENICHON a écrit :

En fait, le problème est un peu différent.
J'ai deux titres : Logiciels libres et Logiciels commerciaux

J'ai donc 2 titre contenant le mot Logiciels.

Si je fais {titre == Logiciels}, le critère s'applique et la boucle me renvoie les 2 articles
Si je fais {titre == libres}, la boucle reste vide...

et ca : {titre == "Logiciels commerciaux"} ???

Valentin GUENICHON a écrit :

En fait, le problème est un peu différent.
J'ai deux titres : Logiciels libres et Logiciels commerciaux

J'ai donc 2 titre contenant le mot Logiciels.

Si je fais {titre == Logiciels}, le critère s'applique et la boucle
me renvoie les 2 articles
Si je fais {titre == libres}, la boucle reste vide...
[...]

{titre == ^(mot1\ mot2)$ } un truc du genre ?

Bonjour

{titre==libres$} devrait te donner une réponse.
pareil pour filtrer de l'autre côté.

A bientôt
Grégoire

Merci pour vos réponses, mais en fait, ça se complique parce que des mots se rajoutent.
Je vais tenter d'expliquer ce que je veux obtenir.

J'ai maintenant plusieurs articles dont le titre est : Logiciels libres : généralités (par exemple) ou Logiciels commerciaux : blablabla
J'ai besoin d'identifier les titres contenant "libres" ou "commerciaux".

Je sais que j'aurais pu utiliser les mots-clés... mais bon, j'y suis, j'y reste, avec mes 175 articles...
Et puis j'ai déjà des tonnes de mots clés et mes titres doivent être explicites.

J'espère que j'ai réussi à me faire comprendre.
Merci !

Le 16 juil. 07 à 19:53, Grégoire a écrit :

Valentin GUENICHON a écrit :

En fait, le problème est un peu différent.
J'ai deux titres : Logiciels libres et Logiciels commerciaux

J'ai donc 2 titre contenant le mot Logiciels.

Si je fais {titre == Logiciels}, le critère s'applique et la boucle
me renvoie les 2 articles
Si je fais {titre == libres}, la boucle reste vide...
[...]

{titre == ^(mot1\ mot2)$ } un truc du genre ?

Bonjour

{titre==libres$} devrait te donner une réponse.
pareil pour filtrer de l'autre côté.

A bientôt
Grégoire

_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net
Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/
irc://irc.freenode.net/spip
FAQ : http://www.spip-contrib.net/spikini/FaQ

J'ai oublié de dire que si je fais {titre == Logiciels} ça fonctionne
Mais si je fais {titre == libres} ça ne fonctionne pas !

Le 17 juil. 07 à 09:54, Valentin GUENICHON a écrit :

Merci pour vos réponses, mais en fait, ça se complique parce que des
mots se rajoutent.
Je vais tenter d'expliquer ce que je veux obtenir.

J'ai maintenant plusieurs articles dont le titre est : Logiciels
libres : généralités (par exemple) ou Logiciels commerciaux : blablabla
J'ai besoin d'identifier les titres contenant "libres" ou "commerciaux".

Je sais que j'aurais pu utiliser les mots-clés... mais bon, j'y suis,
j'y reste, avec mes 175 articles...
Et puis j'ai déjà des tonnes de mots clés et mes titres doivent être
explicites.

J'espère que j'ai réussi à me faire comprendre.
Merci !

Le 16 juil. 07 à 19:53, Grégoire a écrit :

Valentin GUENICHON a écrit :

En fait, le problème est un peu différent.
J'ai deux titres : Logiciels libres et Logiciels commerciaux

J'ai donc 2 titre contenant le mot Logiciels.

Si je fais {titre == Logiciels}, le critère s'applique et la boucle
me renvoie les 2 articles
Si je fais {titre == libres}, la boucle reste vide...
[...]

{titre == ^(mot1\ mot2)$ } un truc du genre ?

Bonjour

{titre==libres$} devrait te donner une réponse.
pareil pour filtrer de l'autre côté.

A bientôt
Grégoire

_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net
Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/
irc://irc.freenode.net/spip
FAQ : http://www.spip-contrib.net/spikini/FaQ

_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net
Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/
irc://irc.freenode.net/spip
FAQ : http://www.spip-contrib.net/spikini/FaQ

Bonjour,

Je ne suis pas un spécialiste mais essaye un truc du genre ...

^[A-Za-z]*/w[libres,commerciaux]/w[A-Za-z]*$

^[A-Za-z]* : N'importe quel mot en début de chaine ([A-Za-z] doit pouvoir être remplacé par [[:alpha:)], je crois)
[A-Za-z]*$ : N'importe quel mot en fin de chaine
/w : n'importe quel séparateur
[libres,commerciaux] : soit libres, soit commerciaux

Si ça n'est pas ça, ça peut te donner une piste.

J'espère avoir aidé un petit peu au moins ...

Rv.

-----Message d'origine-----
De : spip-bounces@rezo.net [mailto:spip-bounces@rezo.net] De la part de Valentin GUENICHON
Envoyé : mardi 17 juillet 2007 10:01
À : Spip
Objet : Re: [Spip] expressions régulières

J'ai oublié de dire que si je fais {titre == Logiciels} ça fonctionne Mais si je fais {titre == libres} ça ne fonctionne pas !

Le 17 juil. 07 à 09:54, Valentin GUENICHON a écrit :

Merci pour vos réponses, mais en fait, ça se complique parce que des
mots se rajoutent.
Je vais tenter d'expliquer ce que je veux obtenir.

J'ai maintenant plusieurs articles dont le titre est : Logiciels
libres : généralités (par exemple) ou Logiciels commerciaux :
blablabla
J'ai besoin d'identifier les titres contenant "libres" ou
"commerciaux".

Je sais que j'aurais pu utiliser les mots-clés... mais bon, j'y suis,
j'y reste, avec mes 175 articles...
Et puis j'ai déjà des tonnes de mots clés et mes titres doivent être
explicites.

J'espère que j'ai réussi à me faire comprendre.
Merci !

Le 16 juil. 07 à 19:53, Grégoire a écrit :

Valentin GUENICHON a écrit :

En fait, le problème est un peu différent.
J'ai deux titres : Logiciels libres et Logiciels commerciaux

J'ai donc 2 titre contenant le mot Logiciels.

Si je fais {titre == Logiciels}, le critère s'applique et la boucle
me renvoie les 2 articles Si je fais {titre == libres}, la boucle
reste vide...
[...]

{titre == ^(mot1\ mot2)$ } un truc du genre ?

Bonjour

{titre==libres$} devrait te donner une réponse.
pareil pour filtrer de l'autre côté.

A bientôt
Grégoire

_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net Infos et archives :
http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/
irc://irc.freenode.net/spip FAQ :
http://www.spip-contrib.net/spikini/FaQ

_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net Infos et archives :
http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/
irc://irc.freenode.net/spip FAQ :
http://www.spip-contrib.net/spikini/FaQ

_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/ irc://irc.freenode.net/spip FAQ : http://www.spip-contrib.net/spikini/FaQ

*********************************
This message and any attachments (the "message") are confidential and intended solely for the addressees.
Any unauthorised use or dissemination is prohibited.
Messages are susceptible to alteration.
France Telecom Group shall not be liable for the message if altered, changed or falsified.
If you are not the intended addressee of this message, please cancel it immediately and inform the sender.
********************************

Une idée comme ça avec un sioui en passant une variable dans un #SET ce qui devrait te donner un truc du genre:
#SET{titre0, libres>}
     #SET{titre1,commerciaux>}

<BOUCLE_nanana(ARTICLES)>
[(#TITRE=={libres}|?{[(#GET{titre0})]})] [(#TITRE=={commerciaux}|?{[(#GET{titre1})]})]
</BOUCLE_nanana>

Bernard

Valentin GUENICHON a écrit :

J'ai oublié de dire que si je fais {titre == Logiciels} ça fonctionne
Mais si je fais {titre == libres} ça ne fonctionne pas !

Le 17 juil. 07 à 09:54, Valentin GUENICHON a écrit :

Merci pour vos réponses, mais en fait, ça se complique parce que des
mots se rajoutent.
Je vais tenter d'expliquer ce que je veux obtenir.

J'ai maintenant plusieurs articles dont le titre est : Logiciels
libres : généralités (par exemple) ou Logiciels commerciaux : blablabla
J'ai besoin d'identifier les titres contenant "libres" ou "commerciaux".

Je sais que j'aurais pu utiliser les mots-clés... mais bon, j'y suis,
j'y reste, avec mes 175 articles...
Et puis j'ai déjà des tonnes de mots clés et mes titres doivent être
explicites.

J'espère que j'ai réussi à me faire comprendre.
Merci !

Le 16 juil. 07 à 19:53, Grégoire a écrit :

Valentin GUENICHON a écrit :
      

En fait, le problème est un peu différent.
J'ai deux titres : Logiciels libres et Logiciels commerciaux

J'ai donc 2 titre contenant le mot Logiciels.

Si je fais {titre == Logiciels}, le critère s'applique et la boucle
me renvoie les 2 articles
Si je fais {titre == libres}, la boucle reste vide...
[...]
        

{titre == ^(mot1\ mot2)$ } un truc du genre ?

Bonjour

{titre==libres$} devrait te donner une réponse.
pareil pour filtrer de l'autre côté.

A bientôt
Grégoire

_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net
Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/
irc://irc.freenode.net/spip
FAQ : http://www.spip-contrib.net/spikini/FaQ
      

_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net
Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/
irc://irc.freenode.net/spip
FAQ : http://www.spip-contrib.net/spikini/FaQ
    
_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net
Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/
irc://irc.freenode.net/spip
FAQ : http://www.spip-contrib.net/spikini/FaQ

Merci à tous ! Vous êtes tous adorables mais j'ai trouvé le problème...
Quelqu'un a modifié les titres... et là je viens de passer un savon !

Donc en fait {titre == libres} fonctionne très très bien si le mot est au milieu d'une phrase.

J'aurais au moins appris quelques notions sur les expressions régulières.

Merci encore pour votre aide.

Le 17 juil. 07 à 10:20, DARRITCHON Hervé ROSI/SIFAC a écrit :

Bonjour,

Je ne suis pas un spécialiste mais essaye un truc du genre ...

^[A-Za-z]*/w[libres,commerciaux]/w[A-Za-z]*$

^[A-Za-z]* : N'importe quel mot en début de chaine ([A-Za-z] doit pouvoir être remplacé par [[:alpha:)], je crois)
[A-Za-z]*$ : N'importe quel mot en fin de chaine
/w : n'importe quel séparateur
[libres,commerciaux] : soit libres, soit commerciaux

Si ça n'est pas ça, ça peut te donner une piste.

J'espère avoir aidé un petit peu au moins ...

Rv.

-----Message d'origine-----
De : spip-bounces@rezo.net [mailto:spip-bounces@rezo.net] De la part de Valentin GUENICHON
Envoyé : mardi 17 juillet 2007 10:01
À : Spip
Objet : Re: [Spip] expressions régulières

J'ai oublié de dire que si je fais {titre == Logiciels} ça fonctionne Mais si je fais {titre == libres} ça ne fonctionne pas !

Le 17 juil. 07 à 09:54, Valentin GUENICHON a écrit :

Merci pour vos réponses, mais en fait, ça se complique parce que des
mots se rajoutent.
Je vais tenter d'expliquer ce que je veux obtenir.

J'ai maintenant plusieurs articles dont le titre est : Logiciels
libres : généralités (par exemple) ou Logiciels commerciaux :
blablabla
J'ai besoin d'identifier les titres contenant "libres" ou
"commerciaux".

Je sais que j'aurais pu utiliser les mots-clés... mais bon, j'y suis,
j'y reste, avec mes 175 articles...
Et puis j'ai déjà des tonnes de mots clés et mes titres doivent être
explicites.

J'espère que j'ai réussi à me faire comprendre.
Merci !

Le 16 juil. 07 à 19:53, Grégoire a écrit :

Valentin GUENICHON a écrit :

En fait, le problème est un peu différent.
J'ai deux titres : Logiciels libres et Logiciels commerciaux

J'ai donc 2 titre contenant le mot Logiciels.

Si je fais {titre == Logiciels}, le critère s'applique et la boucle
me renvoie les 2 articles Si je fais {titre == libres}, la boucle
reste vide...
[...]

{titre == ^(mot1\ mot2)$ } un truc du genre ?

Bonjour

{titre==libres$} devrait te donner une réponse.
pareil pour filtrer de l'autre côté.

A bientôt
Grégoire

_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net Infos et archives :
http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/
irc://irc.freenode.net/spip FAQ :
http://www.spip-contrib.net/spikini/FaQ

_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net Infos et archives :
http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/
irc://irc.freenode.net/spip FAQ :
http://www.spip-contrib.net/spikini/FaQ

_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/ irc://irc.freenode.net/spip FAQ : http://www.spip-contrib.net/spikini/FaQ

*********************************
This message and any attachments (the "message") are confidential and intended solely for the addressees.
Any unauthorised use or dissemination is prohibited.
Messages are susceptible to alteration.
France Telecom Group shall not be liable for the message if altered, changed or falsified.
If you are not the intended addressee of this message, please cancel it immediately and inform the sender.
********************************
_______________________________________________
liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net
Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/
irc://irc.freenode.net/spip
FAQ : http://www.spip-contrib.net/spikini/FaQ

Valentin GUENICHON a écrit :

J'ai oublié de dire que si je fais {titre == Logiciels} ça fonctionne
Mais si je fais {titre == libres} ça ne fonctionne pas !
  
Ca parait déjà plus clair :slight_smile:
donc un truc du genre devrait fonctionner :
{titre==(.*)(libres)(.*)} mais ce n'est pas super optimisé mais ca fonctionnera aussi pour autre chose que des logiciels

mais t'as essayé {titre==(libres)} ?