Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]preg_replace słowa krótsze niż 3 znaki
phpowiec84
post
Post #1





Grupa: Zarejestrowani
Postów: 101
Pomógł: 2
Dołączył: 10.12.2010

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


zbudowałem preg_replace do usuwania z tekstu wyrazów krótszych niż 3 znaki

  1. $text = preg_replace('|s+w{1}s+|', ' ', $text);


ale nie działa ,dlaczego ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
bastard13
post
Post #2





Grupa: Zarejestrowani
Postów: 664
Pomógł: 169
Dołączył: 8.01.2010
Skąd: Kraków

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


  1. $text = preg_replace(array('/(\W)(\w{1,2})\040/', '/^(\w{1,2})\040/', '/\040(\w{1,2})(\W)/', '/\040(\w{1,2})$/'), array('$1', ' ', '$2', ' '), $text);

, gdzie patterny wyłapują odpowiednio:
- (2) słowo na początku ciągu,
- (4) słowo na końcu ciągu,
- (1 i 3) słowa w środu
W sumie zamiast \040 (spacja) powinno być \s (wszystkie białe znaki).

@up:
gargamel - twój regex nie sprawdzi się przy słowach na początku lub końcu ciągu. I z tego co kojarzę, to polegnie też w przypadku kilku słów obok siebie np. 'aa bb cc dd ee'

Ten post edytował bastard13 27.05.2011, 12:42:34
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: 10.10.2025 - 06:53