|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : octobre 2002 Messages : 42 ![]() |
Salut,
j'ai un peu de mal avec les expressions régulières, voici ma demande et je ne sais pas si c'est possible, j'aimerai que dans un texte, n'importe quel caractère ecrit x fois à la suite soit remplacé par qu'un seul item, par ex, youpiiiiiiiiiiiiiiii, devienne youpi, ou bien j'ai une question ???????? devienne j'ai une question ? il faudrait aussi pouvoir ne pas supprimer les lettres qui sont doublées en français, les ss, tt, nn, mm... par contre sss doit devenir s. Merci à vous. |
|
|
00
|
|
|
#2 | ||
![]() ![]() |
Salut !
alors pour la première, c'est facile Code :
$apres = preg_replace('<(.)\\1+(?!\\1)>', '$1', $avant); le plus simple est d'en faire deux Code :
je t'explique : <(.)\\1+(?!\\1)> (.) : on récupère un caractère (n'importe le quel) '.' et on le mémorise '(' ... ')' \\1+ : ensuite on veut le même caractère '\\1' au moins une fois de plus '+' (?!\\1) il faut que la suite '(?' ... ')' ne soit pas '!' le caractère récupéré '\\1' pour les autres : <([nmst])\\1{2,}(?!\\1)>i i (à la fin) : insensible à la casse ([nmst]) : on récupère soit '[' ... ']' un n, un m, un s ou un t 'nmst' et on mémorise '(' ... ')' \\1{2,} : ensuite on veut le même caractère '\\1' au moins deux fois de plus '{2,}' (?!\\1) il faut que la suite '(?' ... ')' ne soit pas '!' le caractère récupéré '\\1' et <([^nmst])\\1{2,}(?!\\1)>i i (à la fin) : insensible à la casse ([^nmst]) : on récupère un caractère qui n'est pas '[^' ... ']' un n, un m, un s ou un t 'nmst' et on mémorise '(' ... ')' \\1{2,} : ensuite on veut le même caractère '\\1' au moins deux fois de plus '{2,}' (?!\\1) il faut que la suite '(?' ... ')' ne soit pas '!' le caractère récupéré '\\1'
__________________
Rédacteur "éclectique" (XML, IRC, Web...) Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC) je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque ! pensez à la balise [code] (bouton #) et au tag (en bas)
|
||
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : octobre 2002 Messages : 42 ![]() |
merci beaucoup pour ton aide et d'avoir pris le temps de m'expliquer,
j'ai essayé ça marche super bien, par contre une petite amélioration, comment faire pour que les chiffres ne soient pas prit en compte par ces règles ? merci |
|
|
00
|
|
|
#4 |
![]() ![]() |
alors
pour la règle avec le . il suffit de remplacer le . par [^0-9] (tout sauf chiffre de 0 à 9) de même pour la règle avec [^nmst] il te suffit de rajouter 0-9 dedans : [^nmst0-9]
__________________
Rédacteur "éclectique" (XML, IRC, Web...) Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC) je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque ! pensez à la balise [code] (bouton #) et au tag (en bas)
|
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : octobre 2002 Messages : 42 ![]() |
c'est parfait,
merci beaucoup, en plus d'avoir eu la réponse, j'ai tout compris. bonne journée. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com