Thread View: pl.comp.lang.php
6 messages
6 total messages
Started by Jivanmukta
Fri, 22 Feb 2019 19:02
regexp i preg_match_all
Author: Jivanmukta
Date: Fri, 22 Feb 2019 19:02
Date: Fri, 22 Feb 2019 19:02
23 lines
1489 bytes
1489 bytes
Mam błąd w wyrażeniu regularnym ale nie wiem co jest źle. Potrzebuję dla
tekstu (kodu w PHP):
private $data, $invalid;
wydobyć identyfikatory tzn. napisy data i invalid.
Robię to tak:
preg_match_all("/(static)?\\s*(private|protected|public)\\s+(static)?\\s*(\\\$([A-Za-z0-9_]+),?\\s*)+\\s*[^\\(]/",
'private $data, $invalid;', $matches, PREG_OFFSET_CAPTURE);
var_dump($matches[5]);
array(1) {
[0] =>
array(2) {
[0] =>
string(7) "invalid"
[1] =>
int(16)
}
}
Nie rozumiem dlaczego w wynikach nie mam napisu data.
Re: regexp i preg_match_all
Author: Borys Pogoreło
Date: Mon, 25 Feb 2019 12:22
Date: Mon, 25 Feb 2019 12:22
16 lines
1455 bytes
1455 bytes
Dnia Fri, 22 Feb 2019 20:02:12 +0100, Jivanmukta napisał(a): > Nie rozumiem dlaczego w wynikach nie mam napisu data. Trafiłeś na ograniczenie wyrażeń regularnych dla powtarzalnych wzorów będących częścią zapytania - większość implementacji zwraca tylko ostatnie dopasowanie w tym przypadku. Musisz to rozwiązać inaczej - np. najpierw sprawdzając dopasowaniem czy masz do czynienia z prawidłową wartością, a później wyciągając nazwy zmiennych prostym wyrażeniem typu /\$([A-Za-z0-9_]+)(?:,\s*)?/ (pamiętaj tylko, że nie uwzględnia ono definicji zmiennej z przypisaną wartością). -- Borys Pogoreło borys(#)leszno,edu,pl
Re: regexp i preg_match_all
Author: Jivanmukta
Date: Tue, 26 Feb 2019 18:42
Date: Tue, 26 Feb 2019 18:42
1 lines
983 bytes
983 bytes
Dzięki Borys, zrobiłem jak doradziłeś. Problem zamknięty.
Re: regexp i preg_match_all
Author: Jivanmukta
Date: Tue, 10 Sep 2019 18:24
Date: Tue, 10 Sep 2019 18:24
6 lines
1198 bytes
1198 bytes
Mam jeszcze jedno pytanie: Potrzebuję dla stringu " REGION_ID . ' ' . // mazowieckie" wydobyć stałą REGION_ID. Użyłem wyrażenia regularnego: [^\$]([A-Z_][A-Z0-9_]*) ale jest źle bo dostaję "EGION_ID". Jakim wyrażeniem wydobywać stałe?
Re: regexp i preg_match_all
Author: Jivanmukta
Date: Wed, 11 Sep 2019 09:21
Date: Wed, 11 Sep 2019 09:21
11 lines
1440 bytes
1440 bytes
W dniu 10.09.2019 o 20:24, Jivanmukta pisze: > Mam jeszcze jedno pytanie: > > Potrzebuję dla stringu " REGION_ID . ' ' . // mazowieckie" > wydobyć stałą REGION_ID. Użyłem wyrażenia regularnego: > [^\$]([A-Z_][A-Z0-9_]*) ale jest źle bo dostaję "EGION_ID". Jakim > wyrażeniem wydobywać stałe? Właściwie to powininem uwzględnić że nie może być nawias za stałą oraz małe litery. [^\$]([A-Za-z_][A-Za-z0-9_]*)\s*[^\(]
Re: regexp i preg_match_all
Author: Jivanmukta
Date: Sun, 15 Sep 2019 17:01
Date: Sun, 15 Sep 2019 17:01
14 lines
1257 bytes
1257 bytes
Potrzebuję jeszcze napisać wyrażenie regularne do wydobywania wywołań funkcji ale tak, żeby nie pasowała deklaracja funkcji. Napisałem: [^a-z]\s*([a-z0-9_]+)\s*\( ale mi dopasowuje do: function invoice( a chciałbym tylko do: invoice( Jak to napisać?
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads