Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Funkcja eregi
piotr485
post
Post #1





Grupa: Zarejestrowani
Postów: 292
Pomógł: 0
Dołączył: 10.07.2009

Ostrzeżenie: (0%)
-----


Dlaczego to nie działa tak jak powinno ?

  1. !eregi("[a-z]", "kamil 9403")
  2. !eregi("[a-z]", "kamil")


W obudwu przypadkach dostaje true - dlaczego ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
darko
post
Post #2





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Warning

This function has been DEPRECATED as of PHP 5.3.0 and REMOVED as of PHP 6.0.0. Relying on this feature is highly discouraged.


używaj preg_match
Go to the top of the page
+Quote Post
piotr485
post
Post #3





Grupa: Zarejestrowani
Postów: 292
Pomógł: 0
Dołączył: 10.07.2009

Ostrzeżenie: (0%)
-----


Nic nie kumam z tego manuala


  1. preg_match("[a-z]", "ciag znakow")
  2. preg_match("[a-z]", "ciag znakow z 2 442")


zawsze fałsz dlaczego ?

Źle określam dziedzinę czy co ?
Go to the top of the page
+Quote Post
Fifi209
post
Post #4





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


bo wyrażenia są niepoprawne.

Daj:

#^([a-z]+)$#
Go to the top of the page
+Quote Post
piotr485
post
Post #5





Grupa: Zarejestrowani
Postów: 292
Pomógł: 0
Dołączył: 10.07.2009

Ostrzeżenie: (0%)
-----


napisałem coś takiego czyli:

  1. #^([a-z]+[A-Z]+-+)


Dozwolone: a-z, A-Z i znak "-" - a jak pozwolić na " (cudzysłów ?)

Próbowałem tak -

  1. #^([a-z]+[A-Z]+-+\"+)


ale nie działa
Go to the top of the page
+Quote Post
thek
post
Post #6





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Na początek to poczytaj jakiś kurs wyrażeń regularnych bo
"robisz to źle" (IMG:style_emoticons/default/winksmiley.jpg)
+?* i jeszcze pewne inne znaki są znakami specjalnymi i muszą być poprzedzone znakiem ucieczki by były widziane literalnie i nie były uznawane właśnie za specjalne. Stąd zgrupuj wszystkie dozwolone znaki w nawiasie kwadratowym jednym i później ewentualnie określ czy może ich być 0 i więcej czy 1 i więcej
([a-zA-Z-"]+)
Normalnie poczytaj trochę kursów zanim zaczniesz bo to są elementarne rzeczy przy wyrażeniach.
Go to the top of the page
+Quote Post
piotr485
post
Post #7





Grupa: Zarejestrowani
Postów: 292
Pomógł: 0
Dołączył: 10.07.2009

Ostrzeżenie: (0%)
-----


Dziwne to co napisałeś nie działa dla "

to działa (bez znakow ucieczki) - \
  1. "#^([a-zA-Z-?$%]+)$#"


ale to już nie:

"#^([a-zA-Z-?$%"]+)$#"

Co oznaczają na poczatku # ^ i koncu $#

Jak pozwolic rowniez na spacje ?

P.S. nie znalazlem zadnego dobrego kursu z takimi wyrazeniami
Go to the top of the page
+Quote Post
thek
post
Post #8





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




A czego się dziwisz, skoro masz 3 podwójne apostrofy "#^([a-zA-Z-?$%"]+)$#" i drugi z nich Ci zamyka wyrażenie.
^ oznacza, że ciąg ma być na początku
$ że ciąg na końcu ma być
Tak więc ^ciąg$ oznacza, że to ma być jedyna całość w szukanym ciągu
Sam zobacz:
http://www.phpf1.com/tutorial/php-regular-expression.html

I nie licz, że na polskich stronach znajdziesz wytłumaczone to łopatologicznie, jak krowie na rowie. Najlepsze przykłady i tutoriale są w języku angielskim.

A to że Ty nie uznałeś iż coś jest "dobre" to samo znaczy dla innych. Bez obrazy, ale patrząc co piszesz mam wrażenie, że dla Ciebie nawet podstawy są za trudne i nie przejawiasz żadnej ochoty na naukę tego, tylko szukasz rozwiązania po najmniejszej linii oporu, bo pytania i problemy jakie rzucasz są jako komentarze do artykułów o wyrażeniach regularnych. Czyli nawet do tutoriali jak widzę nie zaglądasz, choć tak twierdzisz.

Ten post edytował thek 26.11.2009, 21:33:47
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 12:31