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

Langage PHP Discussion :

Majuscule par minuscule derrière une parenthèse ouvrante [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de Nerva
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    360
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 360
    Points : 94
    Points
    94
    Par défaut Majuscule par minuscule derrière une parenthèse ouvrante
    Bonjour et meilleurs voeux.

    Je recherche le formatage regex qui me permettrait de remplacer la première lettre en majuscule par une minuscule lorsqu'elle se trouve derrière une parenthèse ouvrante.

    Merci.

  2. #2
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    Essaie ça. Remplace n'importe quel caractère par sa minuscule.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    $texte = "ppap jjsi (Amadeus (Pour ";
     
    $pattern = "/(\()(.)/msi";
     
    print preg_replace_callback($pattern, function ($matches) {
                return $matches[1].strtolower($matches[2]);
            },$texte);
    Cela ne sert à rien d'optimiser quelque chose qui ne fonctionne pas.

    Mon site : www.emmella.fr

    Je recherche le manuel de l'Olivetti Logos 80B.

  3. #3
    Membre régulier Avatar de Nerva
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    360
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 360
    Points : 94
    Points
    94
    Par défaut
    Merci pour ta réponse mais j'ai oublié de préciser que j'utilise les regex uniquement dans des fichiers texte (avec EditPad Pro) et dans Writer, donc pas intégré dans un langage de programmation. Du coup là je ne sais pas puisque je m'attendais à :

    Rechercher : /(\()(.)/msi
    Remplacer : ?

  4. #4
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    Ben tu n’as pas posté dans le bon forum.
    Cela ne sert à rien d'optimiser quelque chose qui ne fonctionne pas.

    Mon site : www.emmella.fr

    Je recherche le manuel de l'Olivetti Logos 80B.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    voir cette discussion.


    @badaze
    Il n'y a pas d'autre forum "Regex".

  6. #6
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 858
    Points : 6 556
    Points
    6 556
    Par défaut
    La syntaxe du motif de remplacement est un peu particulière avec EditPad (différente de celle de sed et de notepad++):
    Code search/replace : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    search: \(\p{Lu}
    replace: \l0

    La parenthèse est échappée car c'est un caractère avec un sens spéciale dans une pattern.
    \p{Lu} est la classe de caractères qui contient toutes les lettres majuscules même les lettres accentuées (L est pour Letter, u est pour uppercase). Si j'utilise cette classe de caractères c'est juste un souci de précision, tu peux très bien utiliser \pL qui contient toutes les lettres à la place ou même le point, les lettres déjà en minuscule resteront inchangées de toute manière.

    Le motif de remplacement avec la commande \l s'écrit \lx où x est le numéro du groupe de capture, mais ici pas besoin de capturer pour isoler (une parenthèse passée en minuscule ne change pas) donc on met \l0 pour que le passage en minuscule s'effectue sur toute la correspondance.

    NB: si une pattern comporte plus de 9 groupes de captures, une manière de différencier un chiffre dans le motif de remplacement avec un chiffre représentant un groupe de capture suite à \lx ou \Ux, consiste à l'écrire avec une séquence d'échappement \xnn hexadécimale, par exemple: \l1\x30 pour obtenir le groupe 1 en minuscule et le chiffre 0, sinon \l10 renvoie en minuscule le groupe de capture 10 (uniquement si celui-ci existe).
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  7. #7
    Membre régulier Avatar de Nerva
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    360
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 360
    Points : 94
    Points
    94
    Par défaut
    Oui j'avais cherché et je n'avais pas trouvé d'autre forum traitant des regex.

    Merci CosmoKnacki.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Par défaut MD5 Renvoie une Chaine Majuscule ou Minuscule
    Par mmsalem dans le forum API, COM et SDKs
    Réponses: 6
    Dernier message: 12/02/2010, 11h16
  2. Différencier majuscule et minuscule dans une requête
    Par Laaris dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 02/07/2008, 20h18
  3. Réponses: 4
    Dernier message: 20/08/2007, 11h24
  4. Différence entre majuscule et minuscule dans une requête
    Par Asdorve dans le forum Langage SQL
    Réponses: 2
    Dernier message: 23/06/2004, 14h42

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