Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] preg_replace i rozpoznywanie spacji, i nie tylko
tomekmvr
post
Post #1





Grupa: Zarejestrowani
Postów: 116
Pomógł: 2
Dołączył: 11.09.2006

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


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
Go to the top of the page
+Quote Post
everth
post
Post #2





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

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


Może coś takiego
  1. $text = preg_replace("/(?<= |^){$szukane}(?= |\.)/",$zamiana,$ciag);


Ten post edytował everth 4.09.2010, 21:46:27
Go to the top of the page
+Quote Post
tomekmvr
post
Post #3





Grupa: Zarejestrowani
Postów: 116
Pomógł: 2
Dołączył: 11.09.2006

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


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
Go to the top of the page
+Quote Post
Noidea
post
Post #4





Grupa: Zarejestrowani
Postów: 226
Pomógł: 61
Dołączył: 20.08.2010

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


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. ?>
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: 25.08.2025 - 16:28