Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]wyrażenia regularne problem
El Nino9
post
Post #1





Grupa: Zarejestrowani
Postów: 87
Pomógł: 3
Dołączył: 3.04.2011

Ostrzeżenie: (10%)
X----


witam, niedawno zacząłem dopiero poznawać wyrażenia regularne stąd więc moje problemy

  1. $string = '<a href="index.php?page=village&amp;id=88063">K24 154 Lonmar (416|214) K24</a></td><td>12,154</td><td><a class="playerlink" href="index.php?page=player&amp;id=3103268">wwiola</a> [<a class="tribelink" href="index.php?page=tribe&amp;id=53309">FC@BIL</a>]</td><td><a class="playerlink" href="index.php?page=player&amp;id=3127865">ptk222</a> [<a class="tribelink" href="index.php?page=tribe&amp;id=53309">FC@BIL</a>]</td><td>2012-01-27 - 23:47:45</td>';
  2.  
  3. $regex = '/(id[\=][0-9]{5}.[\>])(.*)[\(]([0-9]{3}[\|][0-9]{3})[\)] (K[0-9]{2})[\<\/a\>\<\/td\>\<td\>](.*)[\<\/td\>\<td\>\<a class="playerlink" href="index.php.page=player&amp;id.][0-9]+[\"\>](.*)[\<\/a\>] [\[\<a class="tribelink" href="index.php.page=tribe&amp;id=[0-9]+[\"\>](.*)[\<\/a\>\]\<\/td\>\<td\>]([0-9]{4}.[0-9]{2}.[0-9]{2} . [0-9]{2}.[0-9]{2}.[0-9]{2})[\<\/td\>]/' ;
  4.  
  5. preg_match($regex, $string, $var);


i tak zmienne
  1. $nazwa_wioski = $var[2]; //przyjmuje wartość K24 154 Lonmar
  2. $villages = $var[3]; //przyjmuje wartosc 416|214
  3. $kontynent = $var[4]; //przyjmuje wartość K24


przyjmują one wartości jakie chciałem. poźniej natomiast zaczynają się schody

  1. $var[05] //przyjmuje wartość /a>12,154wwiola [FC@BIL] natomiast chciałem by przyjęła 12,154. sądzę że wynika to z zapisu (.*), ale nie wiem w jaki sposób zapisać liczbę z przecinkiem, gdzie nie wiadomo ile cyfr będzie przed przecinkiem, ile po przecinku a także nie wiadomo czy wystąpi w ogóle przecinek
  2.  
  3. dalsze problemy to
  4. $var[06] // przyjmuje wartość >ptk222 [< natomiast chciałem otrzymać po prostu ptk222
  5.  
  6. $var[07] //przyjmuje wartość index.php?page=tribe&id=53309">FC@BIL] zamiast oczekiwanego przeze mnie FC@BIL
  7.  
  8. i wreszcie $var[08] //przyjmuje wartość id=88063">K24 154 Lonmar (416|214) K2412,154wwiola [FC@BIL]ptk222 [FC@BIL]2012-01-27 - 23:47:45< a miało wyświetlać datę

zdaję sobie sprawę że jest tu wiele błędów, ale liczę że znajdzie się jakaś dobra duszyczka i je wskaże bądź chociaż poda jakieś wskazówki co tu zmienić

pozdrawiam!

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
El Nino9
post
Post #2





Grupa: Zarejestrowani
Postów: 87
Pomógł: 3
Dołączył: 3.04.2011

Ostrzeżenie: (10%)
X----


poradziłem sobie z tym o co pytałem jednak za pomocą wyrażenia regularnego, nie bardzo mogłem zaczaić tamte przykłady. jeśli jednak nadal ktoś chce pokierować mnie na inną metodę to proszę o jakieś przykłady. w każdym razie do sedna, wyrażenie wygląda tak, fakt jest trochę zagmatwane ale robi to co miało robić

  1. $regex = '/(id.[0-9]+.[\>])(.*)[\(]([0-9]{3}[\|][0-9]{3})[\)] (K[0-9]{2})<\/a><\/td><td>([^<]+)<\/td><td(.*)><a class="playerlink" href="index.php.page=player&amp;id=[0-9]+">([^<]+)<\/a>\s\[<a class="tribelink" href="index.php.page=tribe&amp;id=[0-9]+">([^<]+)<\/a>\]<\/td><td><a class="playerlink" href="index.php.page=player&amp;id=[0-9]+">([^<]+)<\/a>\s\[<a class="tribelink" href="index.php.page=tribe&amp;id=[0-9]+">([^<]+)<\/a>\]<\/td><td>([^<]+)<\/td>/';

tyle że zapomniałem o jednym fakcie
w taj tabeli występują dwa różne rodzaje wierszy które różnią się tym fragmentem

  1. <td><a class="playerlink" href="index.php?page=player&amp;id=3130807">WLASCICIEL</a> [<a class="tribelink" href="index.php?page=tribe&amp;id=47058">PLEMIE</a>]</td><td><a class="playerlink" href="index.php?page=player&amp;id=3130807">GRACZ</a>


  1. <td class="hidden">WLASCICIEL</td><td><a class="playerlink" href="index.php?page=player&amp;id=3252522">GRACZ</a>


czy jest możliwe wyrażenie, które w przypadku pierwszym wyciągnie do tablicy WLASCICIEL, PLEMIE, GRACZ
a w przypadku drugim tylko WLASCICIEL, a brak pozostałych pól będzie oznaczał puste pole tablicy?

mam nadzieję że problem przedstawiłem w miarę jasno,
pozdrawiam

Ten post edytował El Nino9 31.01.2012, 00:53:14
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: 7.10.2025 - 13:17