Skocz do zawartości
  • Cześć!

    Witaj na forum RootNode - aby pisać u nas musisz się zarejestrować, a następnie zalogować. Posty pisane z kont niezarejestrowanych nie są widoczne publicznie.

Rekomendowane odpowiedzi

Opublikowano

Witam pomoże ktoś przy wyrażeniach regularnych w php.

Mam ciąg postaci: 

Kod{1234567890123}Cena{1.8000}Nazwa{Test1}Ilosc{10}

Chciałbym z niego wyciągnąć kod oraz ilość w postaci: 1234567890123 10, jeśli się uda na raz, jeśli nie rozbiję na dwie linie.

Póki co doszedłem do takiego czegoś co można by to zrobić osobno dla kodu i ilości.

Jak z podanego niżej kodu wyciągnąć sam kod:

<?php
$file = "Kod{1234567890123}Cena{1.8000}Nazwa{Test1}Ilosc{10}";
preg_match('/Kod{(.*?)}/', $file, $match);
?>
<pre>
    <?php
    print_r($match);
    ?>
</pre>

Powyższe zwraca:

    Array
(
    [0] => Kod{1234567890123}
    [1] => 1234567890123
)

A chciałbym uprościć to do postaci:

    Array
(
    [0] => 1234567890123
)

Można liczyć na jakieś podpowiedzi.

Opublikowano (edytowane)
$file = "Kod{1234567890123}Cena{1.8000}Nazwa{Test1}Ilosc{10}";
preg_match("/Kod{([^}]+)}.*Ilosc{([^}]+)}/", $file, $match);
$match = array_slice($match, 1);

 

Edytowane przez mck
  • Lubię 1
  • Super! 1
Opublikowano

Polecam Ci testować działanie wyrażeń regularnych poza kodem PHP. W przypadku bardziej skompikowanych wyrażeń regularnych to bardzo pomaga w określeniu ich prawidłowej składni a przy okazji przetestowania. Osobiście korzystam z https://regex101.com/ gdzie w czasie rzeczywistym możesz obserwować efekt działania wprowadzonego wyrażenia. To bardzo przyśpiesza pracę.

 

 

  • Super! 1

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Korzystając z forum, wyrażasz zgodę na: Warunki użytkowania, Regulamin, Polityka prywatności.