Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyrażenia regularne (nawias klamrowy jako tekst)
Forum PHP.pl > Forum > PHP
Que
Witam,

Mam pewien problem, załóżmy - proste wyrażenie o treści:
  1. <?php
  2. preg_match_all('@<a href="(.*?)">(.*?)</a>@', $a, $b)
  3. ?>

zwróci wszystkie odnośniki pasujące do wzorca, a jeśli chce tylko odnośniki które zawieraja w anachorze [tag]? snitch.gif
  1. <?php
  2. preg_match_all('@<a href="(.*?)">[tag](.*?)</a>@', $a, $b)
  3. ?>


wtedy tag jest traktowany jako nawias klamrowy a nie moge tam dac [a-zA-Z[]], więc jak wyszukać wszystkie odnośniki które mają słowo [tag] w anachorze?

Pozdrawiam,
Dziękuje za podpowiedzi.
kwiateusz
znak ucieczki winksmiley.jpg

  1. <?php
  2. preg_match_all('@<a href="(.*?)">[tag](.*?)</a>@', $a, $b)
  3. ?>
Que
Dzięki:)

tak myślałem - ale nie wiedziałem gdzie wstawić ucieczkę:)

Oops
jesli dam \[ \] to wtedy [ ] nie są brane pod uwage - a ja chce wyszukać tag łącznie z [ ] smile.gif
kwiateusz
znaczy chcesz osiagnac [tag]cos? czy sam tag? smile.gif

w takim przypadku
  1. <?php
  2. preg_match_all('@<a href="(.*?)">([tag].*?)</a>@', '<a href="test.pl">[tag]cos</a>', $b);
  3. ?>

jesli sam tag to
  1. <?php
  2. preg_match_all('@<a href="(.*?)">([tag]).*?</a>@', '<a href="test.pl">[tag]cos</a>', $b);
  3. ?>

a jak tag i tekst oddzielnie to
  1. <?php
  2. preg_match_all('@<a href="(.*?)">([tag])(.*?)</a>@', '<a href="test.pl">[tag]cos</a>', $b);
  3. ?>
Que
Czasami zwraca mi wyniki które mają [tag] na koncu a nie na początku:(
a jeśli dam ^ na początku (....) to nic nie zwraca ;x
kwiateusz
ja probowalem na tym co podałem i nie łapie gdy tag jest gdzie indziej niz na poczatku
Que
Hmm
^(\[tag\].*?) - tak jest poprawnie?
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.