Κανονικές εκφράσεις
- rapadder
- Gbyte level
- Posts: 1897
- Joined: Thu Jun 17, 2004 7:12 pm
- Academic status: Alumnus/a
- Gender: ♂
Κανονικές εκφράσεις
Ήθελα την βοήθεια σας στο παρακάτω. Θέλω μια κανονική έκφραση που να ελέγχει αν μια συμβολοσειρά είναι από 6-15 χαρακτήρες και περιέχει τουλάχιστον 1 κεφαλαίο γράμμα ή ειδικό χαρακτήρα. Έχει κανείς καμιά άποψη;
... Γράφτε κώδικα όσο είναι καιρός ...
Σε τι γλώσσα καταρχήν
Σε php προσωπικά θα έλεγχα πρώτα αν η συμβολοσειρά είναι από 6-15 χαρακτήρες:
if ( (strlen($str)>=6) && (strlen($str)<=15) )
και μετά θα έψαχνα αν είναι true το
(ereg($pattern, $str)) όπου $str η συμβολοσειρά και $pattern="([Α-ΖΑ-ΩΆΈΊΌΉΎΏ]+)";
Τώρα σαν ειδικό χαρακτήρα τι εννοείς? Υπάρχει αυτό
$pattern="(([[:punct:]])+)";
όπου αναγνωρίζει όλα τα σημεία στίξης και μπορείς να το επεκτείνεις σε
$pattern="(([[:punct:]]| )+)";
όπου αναγνωρίζει όλα τα σημεία στίξης και τα κενά.
Σε άλλη γλώσσα δεν ξέρω τι παίζει... Googlισε για παραπάνω γνώσεις

Σε php προσωπικά θα έλεγχα πρώτα αν η συμβολοσειρά είναι από 6-15 χαρακτήρες:
if ( (strlen($str)>=6) && (strlen($str)<=15) )
και μετά θα έψαχνα αν είναι true το
(ereg($pattern, $str)) όπου $str η συμβολοσειρά και $pattern="([Α-ΖΑ-ΩΆΈΊΌΉΎΏ]+)";
Τώρα σαν ειδικό χαρακτήρα τι εννοείς? Υπάρχει αυτό
$pattern="(([[:punct:]])+)";
όπου αναγνωρίζει όλα τα σημεία στίξης και μπορείς να το επεκτείνεις σε
$pattern="(([[:punct:]]| )+)";
όπου αναγνωρίζει όλα τα σημεία στίξης και τα κενά.
Σε άλλη γλώσσα δεν ξέρω τι παίζει... Googlισε για παραπάνω γνώσεις

- HdkiLLeR
- Venus Project Founder
- Posts: 4356
- Joined: Tue Jan 27, 2004 4:41 pm
- Academic status: Alumnus/a
- Gender: ♂
- Location: New York, NY
- Contact:
Σε τι το θέλεις java.regex ή σε C (posix regex);
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS d-->--- s+:+ a- C++(+++) BILS++++$ P--- L++++>+++++ E--- W+++ N+ o+ K w--
O M+ V-- PS++>+++ PE- Y++ PGP++ t+ 5+ X+ R* tv b++ DI- D+ G+++ e+++>++++ h r++ y++
------END GEEK CODE BLOCK------
"UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity." -- Dennis Ritchie
Version: 3.12
GCS d-->--- s+:+ a- C++(+++) BILS++++$ P--- L++++>+++++ E--- W+++ N+ o+ K w--
O M+ V-- PS++>+++ PE- Y++ PGP++ t+ 5+ X+ R* tv b++ DI- D+ G+++ e+++>++++ h r++ y++
------END GEEK CODE BLOCK------
"UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity." -- Dennis Ritchie
Κάνε λίγο πιο συγκεκριμένους του περιορισμούς. Τι εννοείς ειδικό χαρακτήρα; Εκτος από το κεφαλαίο γράμμα και τον ειδικό χαρακτήρα οι υπόλοιποι χαρακτήρες τι μπορεί να είναι.
Ένα πολύ καλό reference για regular expressions σε java είναι το http://www.javaregex.com/RegexRecipesV1.pdf
και ένα πιο σύντομο είναι το http://trijug.org/downloads/Power%20Reg ... 20Java.pdf
Ένα πολύ καλό reference για regular expressions σε java είναι το http://www.javaregex.com/RegexRecipesV1.pdf
και ένα πιο σύντομο είναι το http://trijug.org/downloads/Power%20Reg ... 20Java.pdf