![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 103 Pomógł: 2 Dołączył: 6.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Mam problem z wyrazeniem regularnym, ktory ma za zadanie przepuszczac tylko same litery i cyfry, a przepuszcza dodatkowo znak "^" i "_", czym jest to spowodowane i jak to wykluczyc? Moje wyrazenie/skrypt:
|
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 695 Pomógł: 65 Dołączył: 27.07.2009 Skąd: Y Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 103 Pomógł: 2 Dołączył: 6.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
Tak, tyle że przy Twoim zapisie, brak polskich znakow, jest spacja (ktorej nie chce), no i musi zostac {3,20} bo na taki przedzial zezwalam.
Rozumiem, ze po przerobce powinno wygladac to tak:
rozumiem, ze modyfikator "i" ignoruje wielkosc liter, ale czy to wyeliminuje mi znaki "^" i "_" ![]() Ok sprawdzilem ten Twoj ereg, ktory lekko przerobilem i wyglada na to ze dziala prawidlowo. Tylko jesli ktos moglby mi wytlumaczyc, czemu przy moim zapisie przechodzily te znaki, a teraz jest ok? Przyda sie na przyszlosc ![]() Chodzi o nawiasy, czy modyfikator? |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 107 Pomógł: 30 Dołączył: 19.02.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Przedtem miałeś [A-ż...] a więc m.in.wszystkie znaki od "A" do "ż".
Popatrz na tabelę kodów UTF-8: http://en.wikipedia.org/wiki/UTF-8 Pomiędzy "Z" i "a" masz np. [, \, ], ^, _ i ` (tyldę). Wszystkie te znaki powinny być akceptowane w pierwotnej redakcji. Po "z" też jest w kodzie trochę innych znaków niż polskie narodowe (zanim dojdziesz do "ż"). Inny wariant rozwiązania to tzw. cechy znaków. Poczytaj: http://pl.php.net/manual/pl/regexp.reference.unicode.php |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 103 Pomógł: 2 Dołączył: 6.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
Dzieki, teraz m/w wiem w czym tkwil problem.
Czyli poprzedni zapis, tez moze przepuscic mi jakies znaki, wiec chyba najrozsadniej bedzie wypisac je "recznie":
Mam nadzieje, ze modyfikator "i" dziala poprawnie na polskich ogonkach ![]() Ten zwykly nawias tez chyba nie jest juz potrzebny :/ EDIT: A tak sobie pomyslalem teraz, czy nie wystarczylo by uzyc \w\d, czyli word i digit ? Czy wtedy moge liczyc na to, ze bede mogl wpisac tylko litery (lacznie z polskimi) i cyfry?
Sorrki za te pytania, ale dopiero staram sie pojac wyrazenia reg. Ten post edytował kaźmirz 5.03.2011, 12:47:50 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 107 Pomógł: 30 Dołączył: 19.02.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
O ile pamiętam, "\w" puści także "_".
"Ten zwykly nawias" - to jak rozumiem zwykłe nawiasy okalające wyrażenie regułowe. Stosuje się je do przechwytywania fragmentu tekstu pokrytego danym fragmentem wyrażenia regułowego. U Ciebie raczej niepotrzebne. Ten post edytował Valdi_B 5.03.2011, 13:58:32 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.06.2025 - 22:07 |