Regex : trouver deux caractères consécutifs différents

Regex : trouver deux caractères consécutifs différents - PHP - Programmation

Marsh Posté le 02-07-2008 à 19:44:35    

Bonjour, je cherche une expression permettant de trouver deux caractères consécutifs différents dans une chaine.
 
J'arrive à trouver deux caractères identiques avec #([A-Z])\1#
 
Mais #([A-Z])[^\1]# ne fonctionne pas quelle est la bonne syntaxe ?
 
Merci d'avance...


Message édité par asseforever le 02-07-2008 à 22:53:23
Reply

Marsh Posté le 02-07-2008 à 19:44:35   

Reply

Marsh Posté le 02-07-2008 à 20:06:51    

jme plante peut etre mais #([A-Z])[^\\1]#


---------------
« The enemy is the gramophone mind, whether or not one agrees with the record that is being played at the moment. » — George Orwell
Reply

Marsh Posté le 02-07-2008 à 20:38:18    

Ca ne marche pas chez moi en tous cas... :(


Message édité par asseforever le 02-07-2008 à 22:27:18

---------------
Amateur de Prise 2 tête
Reply

Marsh Posté le 04-07-2008 à 19:51:21    

N'existe-t-il vraiment aucune solution ?


---------------
Amateur de Prise 2 tête
Reply

Marsh Posté le 04-07-2008 à 21:35:11    

Essaie ça :
/(.)(?!\1)./

Message cité 1 fois
Message édité par sielfried le 04-07-2008 à 21:36:42

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 05-07-2008 à 19:58:13    

Merci #([A-Z])(?!\1).# fonctionne, (du moins partiellement).
 
Je veux dire ABBBA donne AB et BA mais si je mets ABA, alors il ne trouve que AB (car le B de BA est déjà contenu dans le premier match).
 
Encore merci, si vous connaissiez le paramètre à rajouter pour avoir AB et BA dans ABA, je suis preneur.


---------------
Amateur de Prise 2 tête
Reply

Marsh Posté le 05-07-2008 à 20:08:58    

sielfried a écrit :

Essaie ça :
/(.)(?!\1)./


putain bien vu j ai encore du mal avec les assertions  :jap:


---------------
« The enemy is the gramophone mind, whether or not one agrees with the record that is being played at the moment. » — George Orwell
Reply

Marsh Posté le 05-07-2008 à 20:16:09    

asseforever a écrit :

Merci #([A-Z])(?!\1).# fonctionne, (du moins partiellement).
 
Je veux dire ABBBA donne AB et BA mais si je mets ABA, alors il ne trouve que AB (car le B de BA est déjà contenu dans le premier match).
 
Encore merci, si vous connaissiez le paramètre à rajouter pour avoir AB et BA dans ABA, je suis preneur.


peut etre enlever le point a la fin ?
 
mais sinon, se passer simplement des regex et parcours la chaine soi-meme

Code :
  1. $r = []
  2. for($i=1;$i<strlen($str);++$i) {
  3.   if($str[$i-1] != $str[$i]) $r[] = "$str[$i-1]$str[$i]"
  4. }


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 05-07-2008 à 20:23:09    

moué bof pour une fois qu on demande une utilisation legitime des regex hein
les substring c est clairement pas fait pour ce genre de tests


---------------
« The enemy is the gramophone mind, whether or not one agrees with the record that is being played at the moment. » — George Orwell
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed