Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][wyrażenie regularne] usuwanie krzaków
JoShiMa
post
Post #1





Grupa: Zarejestrowani
Postów: 1 374
Pomógł: 149
Dołączył: 1.03.2006

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


Mam wyrażenie regularne, które, przynajmniej teoretycznie powinno usuwać wszystko co nie jest literą cyfra i minusem. Niestety przepuszcza równieć inne krzaki.

Na przykład w tekście: the way » :photoschau on we heart it / visual bookmark #8765543

nie powinno być tych strzałek za słowem 'way'

Próbowałam tak:
  1. preg_replace('/([^a-żA-Ż0-9-])+/',' ',$string)

i tak:
  1. preg_replace('/([^\w-ęĘóÓąĄśŚłŁżŻźŹćĆńŃ])+/',' ',$string)



Jak się takich znaków pozbyć zostawiając jednocześnie polskie?

Oczywiście jak zrezygnuję z przepuszczania polskich znaków (w szczególności 'ż') to inne 'krzaki tez znikają, ale nie o to chodzi.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
JoShiMa
post
Post #2





Grupa: Zarejestrowani
Postów: 1 374
Pomógł: 149
Dołączył: 1.03.2006

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


Wszystko ładnie, tylko rezultat się nie zmienia Twoje wyrażenie działa pod warunkiem, ze nie wstawi się Ż. Nie wiem czy to jest istotne, ale to wszystko jest w kodowaniu utf8.

Cytat(potreb @ 13.04.2011, 20:54:44 ) *
Wywala wszystko co nie jest literą, cyfrą i dodaje myślnik, tylko dodaj jeszcze polskie znaki, ale nie wiem jak z kodowaniem:
  1. $str = preg_replace( "/[^a-z0-1-_]{1}/i", '-', $str );


Tak też już robiłam \w to to samo co a-zA-Z. Efekt est jeszcze gorszy, bo niechciany znaczek jest zwyczajnie zamieniany na �
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 17.10.2025 - 08:35