![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 52 Pomógł: 0 Dołączył: 11.05.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
mam dość lamerskie pytanie odnośnie wzorca, którego nie umiem stworzyć chodzi o szablon, który dopasuje się do ^\/.{1,3}\/$ tak żeby można było dopasować dowolną liczbę z przedziału od 1 do 999 chodzi mi aby uzyskać np. /123/ /456/ /10/ ale żeby nie można było dopasować /001/ /015/ itd. no i żeby wykluczyć litery. Jedyne co udało mi się stworzyć to coś co nie przyjmuje liter ale przyjmuje ciągi typu /005/. Jakby ktoś wiedział byłbym wdzięczny |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
#\/[^0][0-9]{1, 3}\/#
Choć nie wiem o co chodzi z "wykluczeniem" liter. Ten post edytował mortus 5.01.2012, 15:59:29 |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Wykluczyć (negować) liter nie musisz, wystarczy że poszukiwać będziesz tylko cyfr.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
masz tu przykład w JS - to samo wyrażenie zadziała też w PHP tylko na szybko w konsoli sprawdzałem:
Ten post edytował zegarek84 5.01.2012, 12:40:09 -------------------- Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 52 Pomógł: 0 Dołączył: 11.05.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Dziękuję kolego zegarek84 za pomoc, moje wyrażenie wygląda tak: ^\/(?!0+)[0-9]{1,3}\/$ (kwestia slashy) działa idealnie. Temat do zamknięcia. Pozdrawiam |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
tak tylko podsumuję, że trochu nie wiem o co chodzi Ci z tymi slashami gdyż przy wyr. reg. można było znaki // zastąpić każdym innym np. ## - wpisałeś to be cudzysłowia - w JS to tak zadziała ale w PHP musi to być w formie tekstu (chyba, że w nowych wersjach coś zmienili i może być jak w bash'u - choć akurat z negacją nie chce mi się sprawdzać czy tam działa ale w grep trzeba by dać modyfikator -P od perl)... trochu wypiłem to może nie składnie ale co zrozumiałem na pełne wyr. reg. to dopasowanie masz na /123/ - razem ze slashami a w temacie nic o nich nie pisałeś... (niby tu to nic nie zmieni, ale naucz się przedstawiać temat rzeczowo gdyż w js czy php czy nawet w wyr. reg. mogło to mieć znaczenie)
-------------------- Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 52 Pomógł: 0 Dołączył: 11.05.2010 Ostrzeżenie: (0%) ![]() ![]() |
Hej, będe starał się precyzyjnej okreslać w czym rzecz (nie zawsze to takie proste
![]() |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Niestety w MySQL nie można używać operatorów logicznych m. in. negacji (?!), przynajmniej na chwilę obecną. Zatem odpowiednie wyrażenie powinno wyglądać tak:
^/[1-9][0-9]{0,2}/$ lub tak: ^/[^0a-zA-Zwszystkie_znaki_specjalne][0-9]{0,2}/$ W MySQL nie ma również potrzeby używania backslash-y przed slash-ami, ponieważ slashe nie służą do ograniczania wyrażeń regularnych. Ten post edytował mortus 10.01.2012, 23:30:52 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 52 Pomógł: 0 Dołączył: 11.05.2010 Ostrzeżenie: (0%) ![]() ![]() |
Hej, faktycznie negacja w wyrażeniu regularnym w MySQLu nie działa, trochę to głupie ale cóż, dzięki Mortus za podpowiedź bo każdy inny regexp mi działał ale nie korzystałem z negacji w żadnym przypadku. Trigger działa jak należy tj. nie puszcza mi nic innego jak strumień spełniający warunek z regexp. Pozdrawiam
Ten post edytował kiciafu 12.01.2012, 21:48:46 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 04:53 |