Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wyrazenie regularne
Forum PHP.pl > Forum > Przedszkole
dyktek
Witam, mam problem z wyrazeniem regularnym chce wyłapac ze stringa takie cuś

[tekst:23]

i zrobiłem takie coś

  1. <?php
  2.  
  3. $_GET['string'];
  4.  
  5. if (eregi("([a-zA-Z]):([0-9])", $string)) {
  6.  
  7. echo "jest taki ciag w tym stringu";
  8.  
  9. }
  10.  
  11. ?>


no i jak wpisze plik.php?string=dfgdfg:345

to zwraca tak a chce zrobić tak żeby gdy tylko wpisze [fdgf:45] czyli w nawiasach [] zwracało tak
Radarek
  1. <?php
  2. $tekt = $_GET['string'];
  3.  
  4. if (preg_match("/[[^:]+biggrin.gif+]/", $tekt)) {
  5. echo "pasuje";
  6. } else {
  7. echo "nie pasuje";
  8. }
  9.  
  10. ?>
dyktek
fajnie wyłapuje mi te ciągi ze stringów ale nie mam pojęcia jak się zabrać do ich wyciągnięcia i odczytania bo zalozmy ze string wygląda tak

$tekst = jakis tam tekst [xxxxxxxx:34] dsfgkjdfhgkj kjhklhkljhkjh kfghkdfhgkjfgh [aaaaaaaa:22] fbgfgkhkjhkjh;

no i kodzik

  1. <?php
  2.  
  3.  
  4. if (preg_match("/[[^:]+biggrin.gif+]/", $tekst)) {
  5.  
  6. echo "t: $tekst";
  7.  
  8. } else {
  9. echo "n: $tekst";
  10. }
  11.  
  12. ?>
FiDO
Zobacz takie cos:

  1. <?php
  2.  
  3. if (preg_match("/[([^:]+):(d+)]/", $tekst, $m)) {
  4.  
  5. echo "t: $tekst";
  6. var_dump($m);
  7.  
  8. } else {
  9. echo "n: $tekst";
  10. }
  11.  
  12. ?>
dyktek
zwraca mi wtedy tylko to

  1. <?php
  2.  
  3.  
  4. array(3) { [0]=> string(13) "[xxxxxxxx:34]" [1]=> string(8) "xxxxxxxx" [2]=> string(2) "34" }
  5.  
  6.  
  7. ?>


czyli wyłapuje pierwszy ciąg i rozłacza go na trzy części no i do pierwszego poszukiwanego ciągu dostane się poprzez zmienną $m[0] ale jak dostać sie do kolejnych worriedsmiley.gif
dyktek
dzięki działa prawie ale nie wiem jeszcze jak się do tego odwoływac ta zmienna zwraca mi teraz arraya ze stringiem zawierającym te dane wygląd to tak

Cytat
array(3) { [0]=>  array(3) { [0]=>  string(13) "[artykuly:12]" [1]=>  string(13) "[artykuly:34]" [2]=>  string(13) "[artykuly:23]" } [1]=>  array(3) { [0]=>  string(8) "artykuly" [1]=>  string(8) "artykuly" [2]=>  string(8) "artykuly" } [2]=>  array(3) { [0]=>  string(2) "12" [1]=>  string(2) "34" [2]=>  string(2) "23" } }
FiDO
Dodaj jeszcze flage PREG_SET_ORDER do preg_match_all to uprosci troche (wg mnie) strukture zwracanych danych.
dyktek
spoko w końcu się udało
dzięki wszystkim aarambo.gif cool.gif
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.