Sélectionner les 2 premiers caractères d'un champs

Bonjour,

Jusqu'à maintenant j'utilisais un critère de sélection sur le premier caractère du champs bio pour isoler les étudiants d'un certain type de formation. Aujourd'hui il faudrait que je puisse sélectionner les deux premiers caractères du même champs.

<BOUCLE_etudiants(AUTEURS) {par nom} {tout} {statut==6forum} {bio==^[L]}>
...
</BOUCLE_etudiants>

Je n'arrive pas à construire l'expression régulière qui me permettra de sélectionner les 2 premiers caractères de la bio.
J'y arrive en PHP/MySQL mais impossible d'extrapoler vers les boucles de SPIP.

Est-ce qu'une bonne âme peut me donner des pistes ?
Je devine que les possibilités sont immenses mais le langage est obscure !

Mon inspiration initiale vient de l'article "Les critères communs à toutes les boucles" (http://www.spip.net/fr_article900.html) et le paragraphe sur les expressions régulières.
  ... très puissant (mais nettement plus complexe à manipuler), le terme de comparaison « == » introduit une comparaison selon une expression régulière. Par exemple : <BOUCLE_art(ARTICLES){titre==^[aA]}>

YLH

Yves Le Houerf a écrit :

Bonjour,

Jusqu'à maintenant j'utilisais un critère de sélection sur le premier caractère du champs bio pour isoler les étudiants d'un certain type de formation. Aujourd'hui il faudrait que je puisse sélectionner les deux premiers caractères du même champs.

<BOUCLE_etudiants(AUTEURS) {par nom} {tout} {statut==6forum} {bio==^[L]}>
...
</BOUCLE_etudiants>

Je n'arrive pas à construire l'expression régulière qui me permettra de sélectionner les 2 premiers caractères de la bio.
J'y arrive en PHP/MySQL mais impossible d'extrapoler vers les boucles de SPIP.

Les crochets dans les expressions régulières permettent de choisir parmis plusieurs caractères [aA] indique a ou A. Si vous souhaitez 2 lettres, vous pouvez mettre :
{bio==^AB} pour selectionner bio commençant par AB strictement
{bio==^[aA][bB]} pour commençant par aB, ab, AB ou aB ...
{bio==^a{1,3}b{1,3}} pour commençant par ab ou aab ou aaab ou abb ou abbb ou aabb ou aabbb ou aaabb ... bref 1 à 3 a, 1 à 3 b ...

Pour plus d'information, il faut chercher de la documentation sur les regexp, ou expressions rationelles ou expressions régulières ... qui offrent une syntaxe extrèmement performante pour la recherche de caractères.

--
MM.

Le 30 sept. 08 à 20:26, Matthieu Marcillaud a écrit :

Yves Le Houerf a écrit :

Bonjour,
Jusqu'à maintenant j'utilisais un critère de sélection sur le premier caractère du champs bio pour isoler les étudiants d'un certain type de formation. Aujourd'hui il faudrait que je puisse sélectionner les deux premiers caractères du même champs.
<BOUCLE_etudiants(AUTEURS) {par nom} {tout} {statut==6forum} {bio==^[L]}>
...
</BOUCLE_etudiants>
Je n'arrive pas à construire l'expression régulière qui me permettra de sélectionner les 2 premiers caractères de la bio.
J'y arrive en PHP/MySQL mais impossible d'extrapoler vers les boucles de SPIP.

Les crochets dans les expressions régulières permettent de choisir parmis plusieurs caractères [aA] indique a ou A. Si vous souhaitez 2 lettres, vous pouvez mettre :
{bio==^AB} pour selectionner bio commençant par AB strictement
{bio==^[aA][bB]} pour commençant par aB, ab, AB ou aB ...
{bio==^a{1,3}b{1,3}} pour commençant par ab ou aab ou aaab ou abb ou abbb ou aabb ou aabbb ou aaabb ... bref 1 à 3 a, 1 à 3 b ...

Merci Matthieu pour ces explications très claires.
Je ne peux pas vous remercier aussi rapidement que vous m'avez répondu ma connexion est tombé 15 mn après l'arrivée de votre message. Ma FreeBox ne veut plus rebooter.

Pour plus d'information, il faut chercher de la documentation sur les regexp, ou expressions rationelles ou expressions régulières ... qui offrent une syntaxe extrèmement performante pour la recherche de caractères.

J'ai recherché avec regex mais pas regexp (probablement regular expression ?) et avec "expression régulière" mais les résultats sont décevants. Beaucoup de dialogues sur des forum mais peu ou pas de description de la syntaxe.
J'y retourne dès que je peux.

Merci encore

--
MM.

YLH