Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] preg_replace i rozpoznywanie spacji
Forum PHP.pl > Forum > Przedszkole
tomekmvr
Witam

mam o to taki przykładowy skrypt
  1. $ciag = 'ala ma ala ma ala alaala ala.';
  2. $zamiana = 'przykladowy ciag';
  3. $szukane = 'ala';
  4. $text = preg_replace("#\s(".$szukane.")\.\s#i", $zamiana, $ciag);


I chciałby aby było zamieniane słowo ala na zmienną $zamiana. Czyli jak mam ciąg to żeby zamieniło słowo ala wtedy gdy znajduje się na początku ciągu, jest w środku i jest na końcu ciągu zakończonego kropką lub bez kropki, ale żeby nie było zamieniane słowo alaala. Próbowałem tej reguły co podałem s krypcie tylko coś mi nie gra, siedzie już pół dnia i dalej mi nic nie wychodzi.

Proszę o pomoc
everth
Może coś takiego
  1. $text = preg_replace("/(?<= |^){$szukane}(?= |\.)/",$zamiana,$ciag);
tomekmvr
Dzięki to działa.

Odświeżam temat bo mam następny problem preg_match, trochę poczytałem, ale nie mogę znaleźć rozwiązania jak umieszczać zmienną w środku wyrażenia
mam przykład
  1. $szukana = 'jakiś tam ciąg';
  2.  
  3. preg_match('/<option value="([0-9]*)">([^>]*) > ({$szukana}*) > jakiś tekst/i', $ciag, $wynik)


Prawie wszystko mi ładnie działa tak jak bym chciał wyszukuje mi wartość value, następnie ciąg po znaku ">", ale problem jest gdy chcę dodać jeszcze zmienną do wyrażenia, wtedy nic mi już nie znajduje. i nie mogę dojść jak ją dodać, aby było poprawnie, jak widać powyżej próbowałęm tak, ale dostaje pusty wynik
Noidea
Podstawy operacji na stringach:

  1. $var = "abcde";
  2.  
  3. echo 'Tresc: $var ';
  4. echo "Tresc: $var ";
  5. echo 'Tresc: ' . $var;



Po 2 to i tak nie zadziała tak jak chcesz:
Postaraj się zrozumieć ten kod:
  1. <?php
  2. $str = "<abc><def><abcabc><ab><abcc><abccccccccccccc><defffffffff>";
  3.  
  4. $szukana = "abc";
  5. echo "/<({$szukana}*)>/i";
  6. preg_match_all( "/<({$szukana}*)>/i", $str, $matches );
  7.  
  8.  
  9.  
  10. echo "<pre>Wynik:\n" . print_r( $matches[1], true ) . "</pre>";
  11. ?>
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.