Expression regulière
Bonjour,
je voudrais récuperer dans un texte des chaines de caractères entre crochet (dans l'ex, je veux recuperer Organism A et Organism B) :
blablabla [Organism A]
blablablaba [Organism B]...et je galère...
J'ai essayé des trucs du genre
ereg("^\[[:alpha:]\]$",$tableau[$i],$regs);
mais ça marche po :-(
Merci
DelF
je voudrais récuperer dans un texte des chaines de caractères entre crochet (dans l'ex, je veux recuperer Organism A et Organism B) :
blablabla [Organism A]
blablablaba [Organism B]...et je galère...
J'ai essayé des trucs du genre
ereg("^\[[:alpha:]\]$",$tableau[$i],$regs);
mais ça marche po :-(
Merci
DelF
Configuration: windows xp php 4.3.3
2 réponses
-
ContributeurTu met ca pour tester et tu me redit :
ereg("^.*(\[.*\]).*$",$tableau[$i],$regs); echo "Valeur récupérée = ".$regs[0]."<BR>";-
Ben ça m'affiche tout...
valeur recuperée : blablabla [organism A]...
Le pb vient peut etre d'ailleur, voilà mon script :
<?php
$tableau=file("blastdedoublonnéTot.txt");
for ( $i = 0; $i < count($tableau) ; $i++ )
{
$organism[$i] = ereg("^.*(\[.*\]).*$",$tableau[$i],$regs);
echo "Valeur récupérée = ".$regs[0]."<BR>";
}
?> -
-
-
Euh, désolée si j'ai du mal mais suis un peu blonde...
La fonction "gets" est n'est pas définie...-
-
-
@kij_82recoucou
désolée j'ai dù filé hier soir...
Alors avec fgets ça a l'air de fonctionner sauf qu'il ne trouve pas de correspondance...(et je te jure qu'il y en a!!!)
Et elle sert a quoi la fonction fgets? -
Contributeur@DelFLa fonction fgets sert à lire ligne par ligne dans ton fichier. Plus précisément, elle s'arrete de lire soit quand elle a lu jusqu'à la taille indiquée (pour ton truc j'ai 4096 pour etre sur), soit quand elle rencontre une fin de ligne, ou encore une fin de fichier. Il faut donc laisser une grande taille à lire en paramètre, comme ca elle s'arrettera de lire en fin de ligne.
Mais si ton script ne marche pas, c'est que la syntaxe que j'ai donnée pour le test de détection n'est pas bonne.
Il faut en essayée une autre -
Contributeur@DelFEssai :
("[^\[]+(\[[^\]]+\]){1}.*",
a la place de :("[^\[]+(\[[^\]]+\]){1};*",
J'ai fait une faute de frappe sur le dernier '.'
-