Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1213 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Expressions régulières

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Expressions régulières

n°2252445
spark
Luc ?
Posté le 06-03-2015 à 15:53:03  profilanswer
 

Bonjour tout le monde :)
 
Etant une quiche en regex ( :D ), j'ai un petit problème pour transformer une chaine de la forme XXXXYYYYZZZZAABB... en xx:xx:yy:yy:zz:zz:aa:bb:...
 
J'ai fais un petit

Code :
  1. return mb_strtolower(implode(':', mb_split('#[a-zA-Z0-9]{2}#', $fingerprint)));


 
Mais bien sûr ca ne marche pas, sinon je ne serais pas en train de faire ce post  :o  
 
 
Bon, je pourrais la faire à l'ancienne avec un for, un mb_strlen et un mb_substr et un petit modulo dans ma boucle, mais je trouve qu'une regex, c'est plus bôôôô  :whistle:  
 
Merci :D


---------------
Un cycle complet sera une série de 100.
mood
Publicité
Posté le 06-03-2015 à 15:53:03  profilanswer
 

n°2252447
mechkurt
Posté le 06-03-2015 à 16:01:08  profilanswer
 

str_split
Les regex c'est bien, en abusé ça craint... ^^


---------------
D3
n°2252448
spark
Luc ?
Posté le 06-03-2015 à 16:03:42  profilanswer
 

Effectivement, ca le ferait, mais la fonction mb correspondante n'existe pas :( Mais je pense que je vais quand même utiliser celà.
En tout cas merci :jap:  
 
Mais pour mon inculture personnelle, si quelqu'un pouvait m'expliquer mon erreur dans ma regex, ca serait top :jap:


---------------
Un cycle complet sera une série de 100.
n°2252475
spark
Luc ?
Posté le 06-03-2015 à 20:29:02  profilanswer
 

up :o


---------------
Un cycle complet sera une série de 100.
n°2252481
gilou
Modérateur
Modzilla
Posté le 07-03-2015 à 03:46:49  profilanswer
 

Ben si tu veux une expression régulière, et bosser en multibyte, il suffit de faire ceci:
return mb_ereg_replace('(..)(?=.)', '\1:', mb_strtolower($fingerprint));
Bref, tu fous tout en minuscule, et tu fait un remplacement global ou tout groupe de 2 caractères (non final) est remplacé par lui-même suivi de :
 
A+,


Message édité par gilou le 07-03-2015 à 03:57:39

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2252602
spark
Luc ?
Posté le 08-03-2015 à 20:07:17  profilanswer
 

Impeccable, merci beaucoup gilou :jap:  
Et ca me donne un peu un vision de l'étendue de ma méconnaissance des regex :whistle: Va falloir que je regarde ça de plus près :o


---------------
Un cycle complet sera une série de 100.
n°2252630
rufo
Pas me confondre avec Lycos!
Posté le 09-03-2015 à 10:37:52  profilanswer
 

Une autre solution qui se rapproche de str_split() mais pour l'UTF-8 :
http://php.net/manual/en/function.str-split.php
 
Voir la fonction présentée dans le premier commentaire ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2261292
opcwebm
Posté le 26-06-2015 à 15:24:01  profilanswer
 

moi je ferai çà:
implode(":",chunk_split(strtolower("XXXXYYYYZZZZAABB" ),2))
CQFD :D


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Expressions régulières

 

Sujets relatifs
[C#.NET] expressions régulières[Help] Sed & Expressions Régulières
Petit pb expressions régulières[Résolu] bash - grep et expressions régulières
usercontent.css et expressions régulières, possible ?Problème avec preg_match et expressions régulières
expressions régulièresExpressions régulières en vbscript
[Résolu] Expressions régulières... je bloque. :(expressions régulières
Plus de sujets relatifs à : Expressions régulières


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR