18042 sujets
Questions générales et questions de débutants
Struan a écrit :
Merci de m'avoir repondu si vite, c'est un bon départ, mais le probleme est que je peut avoir n'importe quel charactere entre %%ABC%% et %%DEF%% des chiffres des characteres speciaux... un peut de tous quoi.
Ben ça n'empêche pas, il me semble.
Sinon, si le schéma est régulier (par exemple avec toujours 3 lettres en minuscules ou en majucules), il doit y avoir moyen de faire plus spécifique comme chaîne à identifier. Un truc du genre :
%%[A-Za-z]{3}%%
À vérifier mais il me semble que c'est ça.
Bonjour, et désoler du temp de réponse,
Cela ne me convient pas car, la chaine recuperer est "%%abc%% puis %%def%%" or ce que je veux c'est "%%abc%%" et ensuite "%%def%%" (j'espere reussire a me faire comprendre).
Ca, c'est pas mal, mais, si je remplace la chaine "%%abc%% puis %%def%%" par "%%abc%% puis %%éàc%%" je ne recupere pas la deuxieme partie. ce qu'il me faut c'est reussir a recuperer toute chaine se trouvant entre %%.
Merci pour toute votre aide.
a écrit :
%%.*?%%
Cela ne me convient pas car, la chaine recuperer est "%%abc%% puis %%def%%" or ce que je veux c'est "%%abc%%" et ensuite "%%def%%" (j'espere reussire a me faire comprendre).
a écrit :
%%[A-Za-z]%%
Ca, c'est pas mal, mais, si je remplace la chaine "%%abc%% puis %%def%%" par "%%abc%% puis %%éàc%%" je ne recupere pas la deuxieme partie. ce qu'il me faut c'est reussir a recuperer toute chaine se trouvant entre %%.
Merci pour toute votre aide.
Struan a écrit :
%%[A-Za-z]%%
Ca, c'est pas mal, mais, si je remplace la chaine "%%abc%% puis %%def%%" par "%%abc%% puis %%éàc%%" je ne recupere pas la deuxieme partie. ce qu'il me faut c'est reussir a recuperer toute chaine se trouvant entre %%.
Toute chaîne commencée par "%%" et terminée per "%%" :
%%.*%% (zéro ou plusieurs caractères entre les %%)
%%.+%% (un ou plusieurs caractères entre les %%)
Dans tous les cas, dès que le deuxième "%%" est rencontré, cela clôt la chaîne récupérée. Donc non, ça ne peut pas récupérer la chaîne "%%abc%% puis %%def%%", uniquement "%%abc%%" d'une part, et "%%def%%" d'autre part.
Bah avec un preg_replace, ça marche direct pour toute la chaine :
(les spans, c'est pour voir un peu le rendu).
\w = mots (majuscule ou minuscule, accentué ou pas) (= [a-zA-Z ET LA LISTE DES LETTRES ACCENTUEES])
\d = chiffres ( = [0-9])
\s = espaces (tabulation, espace, saut de ligne, ... (\t, \n, , ...)
Testé sur la chaine :
Résultat :
Modifié par Olivier (25 Jul 2006 - 03:16)
$str = preg_replace('#%%([\w\s]+)%%#', '<span style="color: green">%%</span><span style="color: red">\\1</span><span style="color:green">%%</span>', $str);
(les spans, c'est pour voir un peu le rendu).
\w = mots (majuscule ou minuscule, accentué ou pas) (= [a-zA-Z ET LA LISTE DES LETTRES ACCENTUEES])
\d = chiffres ( = [0-9])
\s = espaces (tabulation, espace, saut de ligne, ... (\t, \n, , ...)
Testé sur la chaine :
a écrit :
$str = 'bla bla bla %%aSééée02dsSdc%% bla bla %%def%% blie blye %ddlsf%% lbal %%';
Résultat :
a écrit :
bla bla bla %%aSééée02dsSdc%% bla bla %%def%% blie blye %ddlsf%% lbal %%
Modifié par Olivier (25 Jul 2006 - 03:16)
Donc, pour répondre totalement à la question.
Avec :
Où $str est ta chaîne à traiter, tu récupéreras dans le tableau $res les chaînes qui vont bien.
Tu auras d'une part '%%abc%%' et '%%def%%' et d'autre part 'abc' et 'def' (parcequ'on a mis une parenthèse au motif [\w\s\d]+ pour l'isoler dans une variable).
(Donc, tu récupères juste '%%abc%%' et '%%def%%' si tu enlèves les parenthèses bien sûr, mais tout dépend ce que tu veux récupérer exactement).
A toi de gerer ça comme tu veux ensuite
Modifié par Olivier (25 Jul 2006 - 03:25)
Avec :
preg_match_all('#%%([\w\s\d]+)%%#', $str, $res);
Où $str est ta chaîne à traiter, tu récupéreras dans le tableau $res les chaînes qui vont bien.
Tu auras d'une part '%%abc%%' et '%%def%%' et d'autre part 'abc' et 'def' (parcequ'on a mis une parenthèse au motif [\w\s\d]+ pour l'isoler dans une variable).
(Donc, tu récupères juste '%%abc%%' et '%%def%%' si tu enlèves les parenthèses bien sûr, mais tout dépend ce que tu veux récupérer exactement).
A toi de gerer ça comme tu veux ensuite
Modifié par Olivier (25 Jul 2006 - 03:25)