Utilisation du filtre match

Bonjour,

J'aurais besoin de, au mieux, dans un filtre.
Récupérer la première ligne du texte (et l'afficher). Puis d'afficher
le reste du texte.

Je pensais utiliser les filtres match de spip, mais je pense qu'il va
falloir que je créé un filtre spécifique.

J'ai testé pour un seul mot: http://www.spip.net/fr_article901.html
[(#CHAPO|match{^\w+})] , ca donne u
[(#CHAPO|textebrut|match{^\w+})], ca donne O (ce qui est mon premier caractère)

Je dois faire une erreur, ou bien il y a un hic pour la version 2.06 sur match ?

Une idée ?
merci

Denis Chenu a écrit :

Bonjour,
J'aurais besoin de, au mieux, dans un filtre.
Récupérer la première ligne du texte (et l'afficher). Puis d'afficher
le reste du texte.

hum.
"la première ligne" ?

#SET{reg, '^.+[.?!]'}

<BOUCLE_abc(ARTICLES){id_article}>
   [(REM)
     hypothèse 1 :
     récupérer le premier 'paragraphe', c'est à dire du début
     du chapô jusqu'à une marque de paragraphe ;
     dans l'espace privé, un double saut de ligne
     ou un saut de ligne puis un _
   ]
   [(#CHAPO|match{#GET{reg}, i})]
   [(REM)
     hypothèse 2 :
     récupérer la première 'phrase', c'est à dire du début
     du chapô jusqu'à une marque de fin de phrase ;
     soit un . soit un ? soit un !
   ]
   [(#CHAPO|match{#GET{reg}, Ui})]
</BOUCLE_abc>

Le 26 mars 2009 23:00, denisb <denisb@laposte.net> a écrit :

Denis Chenu a écrit :

Bonjour,
J'aurais besoin de, au mieux, dans un filtre.
Récupérer la première ligne du texte (et l'afficher). Puis d'afficher
le reste du texte.

hum.
"la première ligne" ?

#SET{reg, '^.+[.?!]'}

<BOUCLE_abc(ARTICLES){id_article}>
[(REM)
hypothèse 1 :
récupérer le premier 'paragraphe', c'est à dire du début
du chapô jusqu'à une marque de paragraphe ;
dans l'espace privé, un double saut de ligne
ou un saut de ligne puis un _
]
[(#CHAPO|match{#GET{reg}, i})]
[(REM)
hypothèse 2 :
récupérer la première 'phrase', c'est à dire du début
du chapô jusqu'à une marque de fin de phrase ;
soit un . soit un ? soit un !
]
[(#CHAPO|match{#GET{reg}, Ui})]
</BOUCLE_abc>

_______________________________________________
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 ou
http://embed.mibbit.com/?server=irc.freenode.net&channel=%23spip

Merci,

Merci,

Pour utiliser une regexp, on est obligé de passer par #SET/#GET ?
J'ai esssayé directement [(#CHAPO|match{'^.+[.?!]', i})], ca ne passe pas ....

Pour la première ligne, en fait c'est un combat graphiste/dev.
J'insiste sur le fait que le graphisme ne doit pas modifier le
contenu, mais bon ....

Par contre , pour le premier mot , #SET{reg, '^\w+'} ne donne rien.

Au final, j'utilise (avant des changement ...)
#SET{reg, '^.+[.?!:]'}
[<h4>&gt; (#CHAPO|match{#GET{reg}, Ui}) </h4>]
[(#CHAPO|replace{#GET{reg}, '', Ui})]
Encore du boulot pour comprendre la différence avec ou sans U .... :wink:

Merci beaucoup !!!!

Denis

Denis CHENU a écrit :

Pour utiliser une regexp, on est obligé de passer par #SET/#GET ?

tout dépend de ce qu'il y a dedans...
dès que l'on utilise les classes de caractères [...] (les crochets) alors oui, il faut passer par un #SET #GET

Par contre , pour le premier mot , #SET{reg, '^\w+'} ne donne rien.

#SET{reg, '^.+\s'}
[(#CHAPO|match{#GET{reg}, Ui})]

pour récupérer le premier mot même si la phrase commence avec un tiret ou une lettre accentuée, ou une lettre plus une apostrophe...
par exemple :
   -&nbsp;C'étaient de très grands vents... -> - C'étaient
   {{«À cette époque»}}... -> « À (en gras)
   {C’étaient de très grands vents}... -> C'étaient (en italique)

Encore du boulot pour comprendre la différence avec ou sans U .... :wink:

http://lumadis.be/regex/tuto_pcre.php#oU