Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Warunkowe wyrażenie regularne
8rol
post
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?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
rossol
post
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)
Go to the top of the page
+Quote Post
tehaha
post
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 #
Go to the top of the page
+Quote Post
by_ikar
post
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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 13:54