Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Wyrażenie regularne., Zezwalające na ciąg A-Z, a-z, 0-9 i _
KoPcIu
post
Post #1





Grupa: Zarejestrowani
Postów: 47
Pomógł: 1
Dołączył: 23.10.2008

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


Witam! Wyrażenia regularne od zawsze sprawialy mi problemy. Ostatnie czasy ciągle próbuję napisać prosta(bardzo prosta) funkcje, która sprawdzi czy dany ciąg posiada tylko i wyłącznie znaki A-Z (wielkie i male), liczby 0-9 jak i znak "_". Wiele stron opisuje te wyrażenia, lecz żaden z przykładów nie chce mi działać poprawnie...

Aktualnie doszedłem do:
  1. /[0-9\_\A-Z\a-z]/


Lecz niestety powyższy przykład przepuszcza także znaki kropki itd.

Pozdrawiam!

Ten post edytował KoPcIu 20.08.2010, 13:48:27
Go to the top of the page
+Quote Post
kamillo121
post
Post #2





Grupa: Zarejestrowani
Postów: 127
Pomógł: 6
Dołączył: 26.07.2009

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


Nie wiem może pomoże, ja w preg_match mam tak /^[a-zA-Z0-9\_]{1,}$/

Ten post edytował kamillo121 20.08.2010, 13:50:13
Go to the top of the page
+Quote Post
lord2105
post
Post #3





Grupa: Zarejestrowani
Postów: 380
Pomógł: 59
Dołączył: 24.04.2010
Skąd: London

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


Dla początkujących z wyrażeniami regularnymi polecam:

http://txt2re.com/


--------------------
40% rozwiązań znajduje się tutaj.
59,9% tutaj.

Jeśli pomogłem rozwiązać Twój problem wciśnij
Go to the top of the page
+Quote Post
Crozin
post
Post #4





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Tak się składa, że akurat w PCRE jest takie fajne coś jak: \w, które odpowiada właśnie grupie znaków, których potrzebujesz. Dodatkowo powinieneś oznaczyć początek (^) i koniec ($) ciągu. Aha... a więcej niż jeden to po prostu +. Po czym kończymy z bardzo prostym wyrażeniem:
Kod
/^[\w]+$
Go to the top of the page
+Quote Post
everth
post
Post #5





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

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


^ oznacza też zaprzeczenie jeśli jest użyte w nawiasach klamrowych. Jeśli chciałbyś sprawdzić czy ciąg zawiera tylko podane przez ciebie litery i żadnych znaków specjalnych to:
  1. if (preg_match('/[^a-zA-Z0-9_]+/,$twojtext)==0) echo 'Ciąg jest czysty';


--------------------
Już mi się ani wiedzieć, ani tym bardziej myśleć nie chce.
[Think different]!
Go to the top of the page
+Quote Post
Pawel_W
post
Post #6





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


Cytat(everth @ 20.08.2010, 15:07:52 ) *
^ oznacza też zaprzeczenie jeśli jest użyte w nawiasach klamrowych. Jeśli chciałbyś sprawdzić czy ciąg zawiera tylko podane przez ciebie litery i żadnych znaków specjalnych to:
  1. if (preg_match('/[^a-zA-Z0-9_]+/,$twojtext)==0) echo 'Ciąg jest czysty';

po 1: nie w klamrowych, tylko kwadratowych
po 2: co ty za kod podajesz!? przeczytałeś chociaż pierwszy post?
po 3: http://pl.wikibooks.org/wiki/PHP/Podstawy_...%84_regularnych
Go to the top of the page
+Quote Post
everth
post
Post #7





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

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


  1. Literówki się trafiają - zresztą rzut oka na kod
  2. Cytat
    Ostatnie czasy ciągle próbuję napisać prosta(bardzo prosta) funkcje, która sprawdzi czy dany ciąg posiada tylko i wyłącznie znaki A-Z (wielkie i male), liczby 0-9 jak i znak "_"

    Jeśli powyższy kod nie spełnia warunków to bardzo przepraszam. Czasem ciężko zrozumieć co autor miał na myśli winksmiley.jpg
  3. Jak już to wolę to


--------------------
Już mi się ani wiedzieć, ani tym bardziej myśleć nie chce.
[Think different]!
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:44