ReReplacer et les expressions régulières

Réduire
Ce sujet est fermé.
X
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [RÉGLÉ] ReReplacer et les expressions régulières

    Bonjour

    Décidément, les expressions régulières, c'est tout sauf simples à comprendre et à écrire Les gars qui ont inventé cette syntaxe devait être un peu pervers

    J'aurai aimé écrire une petite règle pour ReReplacer de NoNumber (http://www.nonumber.nl/extensions/rereplacer) pour remplacer le mot "Joomla" ou "Joomla!" par "Joomla!®"

    Quelqu'un aurait-il une idée sur la syntaxe à utiliser ?

    Un niveau de complication supplémentaire : il ne faut pas qu'une url type www.joomla.org soit modifiée. Le mot "à chercher" ne peut donc pas se trouver dans une url.

    Et là, je sèche.

    Merci.
    Christophe (cavo789)
    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be
    Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)​

  • #2
    Re : ReReplacer et les expressions régulières

    Bonjour,

    (?!<a[^>]*>)(joomla)(?![^<]*</a>)

    devrait faire l'affaire pour éviter que les URLs soient prises en compte.
    Pas de demande de support par MP.
    S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

    Commentaire


    • #3
      Re : ReReplacer et les expressions régulières

      Merci Jean-Claude

      Envoyé par jisse03 Voir le message
      (?!<a[^>]*>)(joomla)(?![^<]*</a>)
      Cela fonctionne parfaitement toutefois ma logique n'est pas encore au point :

      Paramétrage
      Recheche = (?!<a[^>]*>)(joomla)(?![^<]*</a>)
      A remplacer par = Jooma!®

      Exemple
      <a href="joomla.org">joomla</a> joomla joomla! joomla!®
      Cela va donner
      <a href="joomla.org">joomla</a>Joomla!®Joomla!®!Joomla!®!®
      ce qui est logique selon la regex utilisée vu qu'il substitue le mot "joomla" avec "Jooma!®" or je voudrais qu'il sustitue "joomla" et "joomla!" et "jooma!®" par "Jooma!®"

      Merci
      Christophe (cavo789)
      Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be
      Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)​

      Commentaire


      • #4
        Re : ReReplacer et les expressions régulières

        Dans ce cas, (joomla|joomla!|jooma!®) au lieu de seulement (joomla). Dans les regexp, | est la condition OU
        Pas de demande de support par MP.
        S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

        Commentaire


        • #5
          Re : ReReplacer et les expressions régulières

          Oui, ça au moins, je sais Mais c'est sans succès, j'ai déjà essayé.

          Essaie sur http://www.regextester.com/index.html

          Regex
          (?!<a[^>]*>)(joomla|joomla!|jooma!®)(?![^<]*</a>)
          Test on
          <a href="joomla.org">joomla</a> joomla joomla! joomla!®
          Le résultat sera
          <a href="joomla.org">joomla</a> joomla!® joomla!®! joomla!®!®
          Ce serait beurk beurk de créer une regex chainée pour remplacer joomla!®!® par joomla!®
          Christophe (cavo789)
          Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be
          Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)​

          Commentaire


          • #6
            Re : ReReplacer et les expressions régulières

            Essaies
            Code:
            (?!<a[^>]*>)(joomla|joomla!|jooma!®)(?![^<]*</a>)\i
            Testé et vérifié avec un script PHP et le regexp de PHP.

            Ou si en PHP 5.4 ou 5.5 ou si le serveur utilise une version supérieure à 8.31 de la lib PCRE
            Code:
            (?!<a[^>]*>)(joomla!®|joomla!|joomla)(?![^<]*</a>)\i
            , la précédence ayant maintenant de l'importance.
            Dernière édition par cavo789 à 09/08/2013, 11h47 Raison: Un "l" manquait dans le regex
            Pas de demande de support par MP.
            S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

            Commentaire


            • #7
              Re : ReReplacer et les expressions régulières

              Envoyé par jisse03 Voir le message
              si en PHP 5.4 ou 5.5 ou si le serveur utilise une version supérieure à 8.31 de la lib PCRE
              Code:
              (?!<a[^>]*>)(joomla!®|joomla!|joomla)(?![^<]*</a>)\i
              , la précédence ayant maintenant de l'importance.
              Bingo !

              J'avais essayé mais dans l'autre sens (jooma|jooma!|jooma!®) et ce n'était pas bon.

              Ta dernière syntaxe est celle qui répond au besoin.

              Merci Jean-Claude.

              (PS : je vais me permettre d'éditer ton précédent message car il y a une faute de typo dans l'expression (jooma au lieu de joomla)).
              Dernière édition par cavo789 à 09/08/2013, 11h49
              Christophe (cavo789)
              Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be
              Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)​

              Commentaire

              Annonce

              Réduire
              Aucune annonce pour le moment.

              Partenaire de l'association

              Réduire

              Hébergeur Web PlanetHoster
              Travaille ...
              X