IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Dreamweaver Discussion :

Expression reguliere : tester si un mot n'est pas dans chaine


Sujet :

Dreamweaver

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    275
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 275
    Points : 97
    Points
    97
    Par défaut Expression reguliere : tester si un mot n'est pas dans chaine
    Bonjour,

    Je souhaite que l'expression retourne vraie :
    - si un mot existe bien dans une chaine
    - mais que un autre mot n'existe pas dans cette meme chaine.

    J'ai essayé plein de truc mais rien ne fonctionne.

    Dans l'attente de votre aide.

    Saluts92

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Points : 133
    Points
    133
    Par défaut
    Bonjour,

    Jette un oeil aux fonctions suivantes :

    strpos() , strstr() et substr_count()

    Cdlt,

    hpl76.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    275
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 275
    Points : 97
    Points
    97
    Par défaut
    j'ai besoin de faire ca avec une seul expression reguliere

    en vérité c'est pour l'utiliser dans le moteur de reccherche de Dreamweaver (en mode expression régulière) afin de répérer mes (très nombresues) lignes de codes qui utilise la fonction HTMLENTITIES sans l'argument UTF-8

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Points : 133
    Points
    133
    Par défaut
    Si tu cherches la fonction htmlentites pourquoi ne pas utiliser le moteur de recherche et le panneau des résultats, j'te suis pas...

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    275
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 275
    Points : 97
    Points
    97
    Par défaut
    c trop hasardeux d'utiliser le panneau de résultats (surtout que certaine ligne sont tronquées et que j'ai plusieurs centaines de lignes concernées)

    je veux répérer les lignes contenant htmlentities sans parametre UTF-8

    ca n'existe pas en expression régulière ca ?

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Points : 133
    Points
    133
    Par défaut
    Si ça doit pouvoir se faire.

    Au final c'est pour faire un rechercher/remplacer ou rechercher/supprimer ?

    C'est l'idée ? Dans quel but tu veux faire ça (pour mon info)

    hpl76

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    275
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 275
    Points : 97
    Points
    97
    Par défaut
    c'est dans le cadre d'une migration phph 5.3.x vers php 5.4.x

    Sous php 5.4.x il est tres fortement conseillé de paramètrer l'encodage dans les fonctions HTMLENTITIES() et HTMLSPECIALCHARACTERS() parceque l'encodage par défaut passe de ISO-8859-1 à UTF-8

    Donc je veux sélectionner toutes les lignes de mon code qui n'ont ni UTF-8 ni ISO-8859-1 lorsque j'utilise une des 2 fonctions cités plus haut.

    Une idée ?

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Points : 133
    Points
    133
    Par défaut
    Re,

    Montre un exemple concret de ton code source pour créer la bonne expression.

    hpl76.

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    275
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 275
    Points : 97
    Points
    97
    Par défaut
    exemple de ligne de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ...
    <input type='hidden' name='societefac' value='<? print(htmlentities($row["societefac"],ENT_QUOTES));?>'>
    <input type='hidden' name='nom' value='<? print(htmlentities($row["nomfac"],ENT_QUOTES,'UTF-8'));?>'>
    <input type='hidden' name='prenom' value='<? print(htmlentities($row["prenomfac"],ENT_QUOTES));?>'>
    ...
    je souhaite rechercher toutes les lignes qui contiennent HTMLENTITIES (c'est le cas des 3 lignes) mais pas UTF-8

    j'attends donc en retour de recherche uniquement les lignes 1 et 3 dans l'exemple ci-dessus

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Points : 133
    Points
    133
    Par défaut
    Ok mais après l'idée c'est de les sélectionner pour passer de ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print(htmlentities($row["societefac"],ENT_QUOTES))
    à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print(htmlentities($row["societefac"],ENT_QUOTES,'UTF-8'))
    ?

  11. #11
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Il faut utiliser une assertion négative.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    275
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 275
    Points : 97
    Points
    97
    Par défaut
    en fait je veux qu'à la fin toutes mes HTMLENTITIES aient un paramtre d'encodage (UTF-8 par exemple)

    mais je ne veux pas faire un chercher:remplacer de masse

    donc je vais traiter mes 400 lignes concernées une à une à la main

    mais pour savoir les lignes me restant à traiter je veux sélectionner par le moteur de recherche dreamweaver et les expressions régulières les lignes restant à traiter

    j'expère avoir été clair

  13. #13
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Points : 133
    Points
    133
    Par défaut
    et un simple str_replace ?

    Ca devrait faire l'affaire...

    hpl76

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    275
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 275
    Points : 97
    Points
    97
    Par défaut
    non comme je viens de le dire je ne veux pas remplacer en masse

    deplus cette expression réguilière est destiné au moteur de recherche de dreamweaver pour sélectionner des lignes de code

  15. #15
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    En d'autres termes, ce n'est pas une regex PHP que tu cherches, mais une Regex pour chercher dans du code PHP via la fonctionnalité de recherche de Dreamweaver.

    Déplacé vers le forum DW
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    275
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 275
    Points : 97
    Points
    97
    Par défaut
    je n'avais pas vu le message de BOVINO sur les assertions négatives
    j'ai lu la doc et j'ai essayé cela (entre autre) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    htmlentities(.+)(?!ENT_QUOTES)
    et cela ne fonctionne pas en tout cas avec Dreamweaver

  17. #17
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Bon, j'ai pas DW, mais sous Eclipse, j'arrive à trouver tes lignes en utilisant ceci : htmlentities\(([^,]+),([^,^)]+)\).
    Si tu n'as pas de bloc 'UTF-8', tu n'as qu'une seule virgule dans la fonction. Donc je cherche les virgules
    En décrypté :
    • htmlentities\( => cherche la chaine "htmlentities("
    • ([^,]+) => un bloc qui ne contient pas de virgule
    • , => une virgule
    • ([^,^)]+) => un bloc qui ne contient ni virgule ni parenthèse fermante
    • \) une parenthèse fermante

    Ce qui matche cette expression : htmlentities($row["societefac"],ENT_QUOTES)
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  18. #18
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    275
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 275
    Points : 97
    Points
    97
    Par défaut
    ALLELUIA ça fonctionne

    ca va beaucoup m'aider merci

  19. #19
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    275
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 275
    Points : 97
    Points
    97
    Par défaut
    encore une petite question

    j'ai bien compris comment dire que je veux des résultats sans tel ou tel caractère

    mais ets il possible d'avoir un résultat SANS une chaine de caratère car ce n'est pas assez précis d'écrire htmlentities\(([^,]+),([^,^)]+)\)
    en effet j'ai du code PHP qui peut s'insérer dans l'écriture du htmlentities et qui contient des virugules ou des parenthèses

  20. #20
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Le problème du cas "qui n'est pas la chaine", c'est de savoir où et comment arrêter la recherche.
    En l’occurrence, tu cherches une chaine qui commence par htmlentities(, qui contient n'importe quel caractère, mais qui ne contient pas 'UTF-8'.
    La chaine en rouge dans l'exemple suivant correspond à ces critères :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <input type='hidden' name='societefac' value='<? print(htmlentities($row["societefac"],ENT_QUOTES));?>'>
    <input type='hidden' name='nom' value='<? print(htmlentities($row["nomfac"],ENT_QUOTES,'UTF-8'));?>'>
    <input type='hidden' name='prenom' value='<? print(htmlentities($row["prenomfac"],ENT_QUOTES));?>'>
    Ce n'est pas exactement ce que tu cherches, non ?

    Donc essaye de déterminer des critères qui limitent le résultat.
    Par exemple, si toutes les lignes qui n'ont pas 'UTF-8' finissent pas ENT_QUOTES, on peut rechercher les chaines qui commencent par htmlentities(, finissent par ENT_QUOTES) et contiennent n'importe quel caractère entre les deux : htmlentities\((.*)ENT_QUOTES\).
    Comme aurait dit une de mes profs de langue il y a longtemps : "Si vous ne savez pas dire 'avalanche', mais que vous savez dire 'neige qui court sur la montage', vous arriverez toujours à vous faire comprendre"
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [RegEx] expression reguliere pour remplacer un mot mais pas un autre
    Par chagam dans le forum Langage
    Réponses: 3
    Dernier message: 30/03/2011, 15h32
  2. [XSLT] tester que la valeur n'est pas
    Par DrDam dans le forum XSL/XSLT/XPATH
    Réponses: 11
    Dernier message: 15/05/2008, 10h24
  3. tester si un bouton radio est cocher dans une Datalist
    Par paradeofphp dans le forum ASP.NET
    Réponses: 6
    Dernier message: 02/11/2007, 16h13
  4. [RegEx] highlight d'un mot qui n'est PAS dans un tag html.
    Par FMaz dans le forum Langage
    Réponses: 5
    Dernier message: 22/03/2006, 15h07
  5. Tester que le fichier n'est pas un fichier binaire
    Par fedfil dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 21/10/2005, 18h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo