Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ereg] Problem ze złożeniem wyrażenia regularnego, [solved]Już sobie poradziłem
Cezar708
post
Post #1





Grupa: Zarejestrowani
Postów: 1 116
Pomógł: 119
Dołączył: 10.05.2005
Skąd: Poznań

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


Witam,

  1. <?php
  2. // mam ciąg na przykład taki:
  3. $line = "text#%innytest%#ostatni#text#%#a moze nie";
  4.  
  5. // i chce robić go na kawałki za pomocą:
  6. $arrParts = preg_split("/#%#|#%|%#|%/", $line);
  7. print_r($arrParts);
  8. ?>


w wyniku mam zgodnie z założeniem:
Kod
Array
(
    [0] => text
    [1] => innytest
    [2] => ostatni#text
    [3] => a moze nie
)


chcę teraz tak zmienić kod, w wyniku mieć:
Kod
Array
(
    [0] => text
    [1] => innytest
    [2] => ostatni text
    [3] => a moze nie
)

czyli po prostu usunięcie hasha z wyniku.

jak to zrobić za pomocą wyrażenia regularnego aby ten hash usunąć jeszcze przed preg_split(), inaczej, co wpisać w miejsce znaków zapytania ((IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ) poniżej:

  1. <?php
  2. $line = "text#%innytest%#ostatni#text#%#a moze nie";
  3.  
  4.  
  5. $arrParts = preg_split("/#%#|#%|%#|%/", $line);
  6. print_r($arrParts);
  7. ?>


PS: Oczywiście wiem, że mogę zrobić to używając jakiejś pętli, lecz nie interesuje mnie takie rozwiązanie, więc proszę go nie proponować. Chcę do tego celu koniecznie użyć wyrażeń regularnych.

---- rozwiązanie

Już sobie poradziłem:

linia z preg_replace powinna wygladać:
  1. <?php
  2. $line = preg_replace( "/([^%])(#)([^%])/", '${1} $3', $line );
  3. ?>

nie wiem czy jest to optymalny sposób ale mi zadziałał.

Pozdrawiam

Ten post edytował Cezar708 28.11.2007, 14:11:10
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: 22.08.2025 - 15:41