Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [inne][PHP]Reg Exp ucinanie ciurka znaków, wyrażenia regularne backreferences?
fate
post 30.10.2012, 13:06:31
Post #1





Grupa: Zarejestrowani
Postów: 824
Pomógł: 106
Dołączył: 14.03.2012
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Witam chciałbym zrobić coś jak tu:
http://www.forumweb.pl/php/usuwanie-powtar...ow-regexp,29305
ale nie za bardzo mogę znalesc informacje na ten temat.

Otóż szukam funkcji która obetnie mi znaki pisane ciurkiem tj. 1111111111 AAAAAAAAAAAA @@@@@@@@ wwwwwww powiedzmy jeżeli jest ich min 5 obok siebie to nadwyżkę uciąć właśnie do właśnie 5 niezależnie czy w środku wyrazu na poczatku czy na koncu.

Bawiłem się troche na regexp.pl ale bez skutku dla mnie wyrażenia regularne to świeży temat i do tej pory nie miałem okazji zapoznać się ze szczegołowym poradnikiem

Rozumiem że trzeba tu użyć preg_replace nie za bardzo rozumiem czym się różni odpreg-replace-callback
^.{5,}$ to się nie nada chyba że bym wypisał zamiast kropki z palca wszystkie znaki z operatorem OR, czy to jedyne wyjście??

WYdaje mi się że pomogłoby tu backfreferences ale musiałbym kogoś poprosić zeby mnie naprawodził jak tego użyć..

Korzystacie z tego typu filtraów danych na własnych platformach? nerdsmiley.png

POMOCY - pozdrawiam

Ten post edytował fate 30.10.2012, 13:08:35


--------------------
Go to the top of the page
+Quote Post
d3ut3r
post 30.10.2012, 13:36:53
Post #2





Grupa: Zarejestrowani
Postów: 709
Pomógł: 176
Dołączył: 24.10.2010

Ostrzeżenie: (0%)
-----


spróbuj: (\w)\1{5,}


--------------------
http://d3ut3r.wordpress.com/ | mysql_* jest przestarzałe UŻYWAJ PDO!
Go to the top of the page
+Quote Post
fate
post 30.10.2012, 14:02:13
Post #3





Grupa: Zarejestrowani
Postów: 824
Pomógł: 106
Dołączył: 14.03.2012
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


czegoś tu brakuje.. może uraczy ktoś jakimś linkiem.

Idealnie działa w tym momencie dla mnie tylko to:

[0]{5,}|[1]{5,}|[2]{5,}|[3]{5,}|[4]{5,}|[5]{5,}|[6]{5,}|[7]{5,}|[8]{5,}|[9]{5,}

i wypisałem dopiero dla cyfr musiałbym dopisać jeszcze litery i znaki

Jak to uprościć? brzydal.gif


--------------------
Go to the top of the page
+Quote Post
d3ut3r
post 30.10.2012, 14:44:43
Post #4





Grupa: Zarejestrowani
Postów: 709
Pomógł: 176
Dołączył: 24.10.2010

Ostrzeżenie: (0%)
-----


  1. $string='helloooooooaaaaaaa 11111111111111 12';
  2.  
  3. $tmp=preg_replace('/(\w)\1{5,}/','',$string);
  4.  
  5. var_dump($tmp);


zwróci:

hell 12


nie o to chodziło ?


--------------------
http://d3ut3r.wordpress.com/ | mysql_* jest przestarzałe UŻYWAJ PDO!
Go to the top of the page
+Quote Post
fate
post 11.11.2012, 23:41:13
Post #5





Grupa: Zarejestrowani
Postów: 824
Pomógł: 106
Dołączył: 14.03.2012
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Bez kitu yahoo.gif jest prawie tak jak miałem na myśli thumbsupsmileyanim.gif sprawdzałem na regexp.pl a nie bezposrednio w projekcie i dlatego skull.gif
np takie wyrazenie ooooooooooooooooo888 wyrzuca mi prawde czyli obcina calość dostal.gif
http://regexp.pl/main/show/147860
Albo źle wpisuje ale stosowałem sie do schematu i na rozne sposoby sprawdzełem, nie ufam tej stronce blink.gif

W takim razie nadawałoby się ale prosiłbym o pomoc w konstrukcji zamieniacza żeby te 5 znaków wstawiało a reszte to co po 5 ucinało albo zamieniać znakiem pustym tyle że 5 pierwszych jednak nie ruszać

a jak się nie da to i tak wdzięczność i takie się nada Rkingsmiley.png
dzieki wielkie

wróciłem do tematu dopracowałem zamiane na pojedyńczy znak który sie powtarzał ale nie wiem jak dodac ru znaki specjalne
  1. $_POST['tresc'] = preg_replace('/([\da-zA-Z@])\1{5,}/','$1',$_POST['tresc'],-1,$ciurki);


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.04.2024 - 10:51