Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Wyrażenie regularne, krótkie słowa
Forum PHP.pl > Forum > Przedszkole
Balon
Próbuję napisać wyrażenie regularne dzięki któremu będę mógł za pomocą preg_replace eliminować słowa krótsze lub równe 2 znakom. Problem jest z spacją tylko z jednej strony lub z obu.

Czy ktoś mógłby pomóc?
Pozdrawiam,
Balon !
Hazel
chodzi o trim()" title="Zobacz w manualu PHP" target="_manual?
devnul
coś w tych okolicach jeśli dobrze Cię zrozumiałem
  1. <?php
  2. preg_replace("#([[:space:]]*)?([a-z]{,2}[[:space:]]*)#si","1",$str);
  3. ?>
Hazel
Można najpierw przycinać trimem, a później stosować ten regexp, będzie szybciej działać...
Ale faktycznie pytał o wyrażenie regularne...
devnul
hazel - ale chyba chodzi o spacje wewnątrz ciągu a trimem ich nie wywalisz przykład takiego ciągu

koty[spacja]są[spacja]włochate

gdy wytniesz samo "są" zostaną 2 spacje koło siebie - z tąd też wyrażenie regularne w takiej a nie innej postaci
Hazel
No tak, Twoje wyrażenie regularne działa także wtedy, jeśli chodzi o coś takiego - masz rację. Tyle, że autor nic takiego nie napisał.
A może napisał, tylko tego nie zrozumiałem dokładnie.
pzdr.
Balon
Przepraszam, że odkopuje temat, ale zapomniałem o nim smile.gif

Devnull, chyba czytałeś w moich myślach. Ale jednak:

  1. <?php
  2. $str = 'Biegnie balon przez las i zbiera grzyby i jagody';
  3. echo preg_replace("#([[:space:]]*)?([a-z]{,2}[[:space:]]*)#si","1",$str);
  4. ?>

nie dzieje się nic.
próbowałem przerobić to trochę, ale żadnych rezultatów.
devnul
fakt nie sprawdzilem - poprzednia wersja ma drobny błąd logiczny. ta będzie dzialać
  1. <?php
  2. $str = 'Biegnie balon przez las i zbiera grzyby i jagody';
  3. echo trim(preg_replace("#([[:space:]]+)([a-z]{1,2}[[:space:]]+)#si","1"," ".$str." "));
  4. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.