Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wyrażenia regularne - odnalezienie fragmentu i usunięcie
Michael2318
post
Post #1





Grupa: Zarejestrowani
Postów: 651
Pomógł: 116
Dołączył: 3.06.2012
Skąd: Lędziny

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


Potrzebuję najpierw sprawdzić czy przykładowo zmienna $a (to jest string) zawiera w sobie coś takiego:
{costam.hehe}, gdzie największą wartość ma to co podkreśliłem, czyli costam. Dlaczego? Dlatego, że takie fragmenty:
{costam}, mają zostać nieruszone, z kolei takie jak już wyżej podałem:
{costam.hehe}
mają zniknąć w całości, ALE - wyrażenie regularne musi mi zwrócić to co podkreśliłem, a następnie skasować taki ciąg znaków:

Kod
<!-- costam -->
bla bla bla bla {costam.hehe} bla bla bla bla bla bla
<!-- costam -->


Podsumowując, skrypt musi znaleźć czy w zmiennej występuje taki wzorzec: {X.Y}, jeśli istnieje to pobiera mi wartość X i usuwa to:

Kod
<!-- X [obojetnie jaki tekst, do momentu] X -->


Ktoś byłby w stanie mi pomóc? Regularki to raczej nie jest moja mocna strona ;/

Ten post edytował Michael2318 26.01.2013, 15:36:48
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Michael2318
post
Post #2





Grupa: Zarejestrowani
Postów: 651
Pomógł: 116
Dołączył: 3.06.2012
Skąd: Lędziny

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


Chyba mi się udało:
  1. <?php
  2.  
  3. $text = 'lalala
  4. <!-- BEGIN costam -->
  5. jakis tekst
  6. <!-- END costam -->
  7. bebebe';
  8.  
  9. $dwa = '{costam.mojemoje}';
  10.  
  11. if ( preg_match("#{(.*?).(.*?)}#is", $dwa, $matches) )
  12. {
  13. $text = preg_replace('#<!-- '.$matches[0].'(\S*).*{\1\..+}.*\1 '.$matches[1].' -->#si', '', $text);
  14. }
  15. echo $text;
  16. ?>;


Ten post edytował Michael2318 26.01.2013, 16:22:08
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: 30.12.2025 - 12:06