![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 66 Pomógł: 0 Dołączył: 10.10.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Potrzebuje skonstruować wyrażenie regularne, które będzie wykorzystane do znalezienia odpowiedniego wyniku przez zapytanie MySQL. Powiedzmy, że mam taki ciąg wejściowy: AAABBBCCCDDD (docelowy ciąg może składać się z dowolnych liter i cyfr). Natomiast w bazie chce znaleźć ciąg który będzie odpowiadał temu powyższemu oraz będzie zawierał znak "#" pomiędzy którymś z elementów ciągu (na jednej lub więcej pozycjach) Teoretycznie moje zapytanie mogłoby wyglądać tak: A[#]?A[#]?A[#]?B itd. to jednak stwarza ten problem, że wyrażenie to zostanie dopasowane również do ciągu, w którym ani razu nie wystąpi znak "#". Jak więc stworzyć wyrażenie, które dla całej długości ciągu będzie wymagało wystąpienia danego znaku chociaż raz? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 6.01.2012 Ostrzeżenie: (0%) ![]() ![]() |
Źródło http://pl.wikibooks.org/wiki/PHP/Podstawy_...%84_regularnych
Cytat Kwantyfikator umieszczamy po znaku lub klasie dozwolonych znaków, zatem nasze wyrażenie będzie miało postać /^[0-9]{1}$/. W wyrażeniach regularnych można stosować kilka predefiniowanych kwantyfikatorów:
* - 0 lub więcej + - 1 lub więcej ? - 0 lub 1 (uwaga: znak ten jest także wykorzystywany w innym kontekście) |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 748 Pomógł: 388 Dołączył: 21.08.2009 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
nie wiem czy da się to zrobić z wyrażeniem regularnym, ale możesz zastosować to wyrażenie, które podałeś i dołożyć do tego drugi warunek używając funkcji mysql FIND_IN_SET(), http://dev.mysql.com/doc/refman/5.0/en/str...ion_find-in-set, w ten sposób sprawdzisz czy w dany ciągu znajduje się znak #
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Warunki w wyrażeniach regularnych akurat zapisuje się inaczej. Tutaj raczej kombinowałbym coś z przewidywaniem pozytywnym. Lektura: http://gajdaw.pl/php/wyrazenia-regularne-p...torial/p23.html
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 13:54 |