Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Ograniczenie w wyrażeniu regularnym
100cm
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 30.06.2012

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


Witam. Borykam się dziś z problemem dotyczącym wyrażeń regularnych. Dokładniej chodzi mi o pewnego rodzaju "ogranicznik", który spowoduje przejęcie tylko jednego elementu. Może dokładniej to zobrazuję opisując na pewnym przykładzie:
chciałbym w tym zdaniu wykorzystać tylko słowo "kot", natomiast każde inne słowo zawierające "przedłużenie" ostatniej litery opuścić i nic z nim nie robić.
Kod
To ja, kot Ali. Kott Ali jest fajny.

Do tej pory udało mi się uzyskać jedynie efekt przy ^ $, ale to kiepskie rozwiązanie gdyż wtedy ciąg znaków musi być na końcu lub na początku linii. Z góry dziękuję za rady.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
soszin
post
Post #2





Grupa: Zarejestrowani
Postów: 38
Pomógł: 1
Dołączył: 26.10.2012
Skąd: Kraków

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


Możesz użyć przed i po słowie kot spacji czyli \s i wtedy wyszukuje tylko słowa kot.

  1. $param = 'To ja, Ali. Kott Ali kottt kot jest fajny.';
  2. $pattern = "/\skot\s/";
  3. preg_match($pattern, $param, $matches);
  4. print_r($matches);
Go to the top of the page
+Quote Post
100cm
post
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 30.06.2012

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


Wszystko działa jak należy, ale gdy nie postawimy spacji ani na początku, ani na końcu ciągu znaków to podany tekst się nie zmienia. Czy posiadasz jeszcze jakiś pomysł? Próbowałem
Kod
preg_replace("/kot{2}/", 'zamiana', $string);

i wszystko super działa jeżeli posiadamy dwa lub więcej "t" na końcu stringu, ale jak to ograniczyć do jednego?

@kolega niżej
Świetna robota, nie wierzę że opiera się to na tak prostym zapisie... Działa jak trzeba, temat uważam za zamknięty i dozgonnie dziękuję.

Ten post edytował 100cm 28.05.2013, 17:00:19
Go to the top of the page
+Quote Post
!*!
post
Post #4





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Cytat
/\bkot\b/
Go to the top of the page
+Quote Post

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: 23.08.2025 - 14:08