![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 70 Pomógł: 0 Dołączył: 16.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
Czy mógłby ktoś spojrzeć na poniższe wyrażenie?
Po wykonaniu tej instrukcji, $matches jest pustą tablicą, a wynik powinien być taki:
Zauważyłem, że problem jest w odwołaniu \1 bo gdy \1 zastąpię słowem 'odwroc', to wszystko działa jak należy. Nadal nie wiem, co konkretniej jest nie tak. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 76 Pomógł: 13 Dołączył: 24.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Nawet nie wiesz, że to nic nie zmienia. Więc jak coś radzisz to sprawdź a nie bredzisz. Co do tematu to \1 (i podobne) można stosować w takich funkcjach jak pre g_replace a nie pre g_match i pre g_match_all. wiec twoje wyrazenie powinno wygladac mniej wiecej tak |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 63 Pomógł: 10 Dołączył: 16.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
Jeśli chcesz stosować odwołania wsteczne w podwójnym cudzysłowie, to musisz poprzedzić jedynkę jeszcze jednym "\", tak:
Kod preg_match("/<(.*)>(.*)<\/\\1>/", "Ten tekst jest odwrocony: <odwroc>fdgd</odwroc>", $matches);
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 70 Pomógł: 0 Dołączył: 16.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
Teraz mam problem z innym wyrażeniem:
Kod <.*?/\s*> Czyli na przykład dla: Kod <a><b /></a> Pasującym ciągiem powinno być Kod <b /> , a znajduje Kod <a><b /> To drugie też pasuje, ale specjalnie dałem po * znak zapytania, żeby dopasowywało leniwie więc powinno zwracać to pierwsze. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 01:20 |