![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 387 Pomógł: 66 Dołączył: 31.03.2005 Skąd: Kielce Ostrzeżenie: (0%) ![]() ![]() |
Witam, mam problem z wyrażeniem regularnym, poniżej przykład jak chciałem to rozwiązać, niestety nie działa.
Chodzi o to, aby sprawdzić czy w $string istnieje jedynka i trójka i piątka. Oczywiście cyfry są tylko dla ułatwienia, w rzeczywistości są to ciągi znaków i kolejność nigdy nie jest taka sama. Moje wyrażenie miało sprawdzić czy w stringu istnieje 1 lub 3 lub 5 dokładnie trzy razy, co wydaje się być logiczne i powinno działać, niestety z tego co widzę parser zwraca wystąpienie tylko raz przy pierwszym napotkanym true. Bardzo proszę o pomoc. Jak znaleźć czy w stringu istnieje 1 i 3 i 5. Dokładnie tłumacząc to co mam na myśli: $string może składać się z czegokolwiek ale musi zawierać 1 i 3 i 5 gdzie kolejność cyfr w $string jest przypadkowa. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 387 Pomógł: 66 Dołączył: 31.03.2005 Skąd: Kielce Ostrzeżenie: (0%) ![]() ![]() |
Nie jest prościej bo jest źle (IMG:style_emoticons/default/smile.gif) String "111" albo "553" przejdzie przez tego preg_matcha ;P Mi się wydaję, że się nie da (IMG:style_emoticons/default/smile.gif) właśnie przez tą kolejność ;/ Ale życzę powodzenia ;P No nie dodałem, że w $string każda fraza może wystapić tylko i wyłącznie raz. Może być 1,2,3,4 ale nie może być 1,1,2,3 Coś takiego wymodziłem:
ale musisz sprawdzić na swoich stringach, czy działa prawidłowo dziala, ale tak jak napisal sephirus, przejdzie kazda fraza Ogólnie chodziło mi o to żeby zapis był krótki i czytelny, tak jak, np. ((1)|(2)|(3)){3} (szkoda, że nie działa). No nic, w takim wypadku będę musiał osobno pisać pod SQL procedurę powtarzającą FIND_IN_SET(); a w PHP to już bzdurka (IMG:style_emoticons/default/tongue.gif) równie dobrze mogę wykorzystać explode i dać in_array(); Jak ktoś znajdzie jakieś sensowne rozwiązanie, zakładając, że szukanych jest dziesiątki, a nie tylko trzy sztuki to bardzo proszę o napisanie tego w tym poście Ten post edytował cudny 4.11.2011, 15:49:05 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.10.2025 - 05:55 |