रेजेक्स ( Regular expressions )
युजरने भरलेला फॉर्म आवश्यक ते सर्व रकाने योग्य रितीने भरले आहेत का हे तपासण्याच्या पद्धतीला फॉर्म व्हॅलिडेशन असे म्हणतात. अशा फॉर्ममध्ये
युजरने भरलेला इमेल योग्य फॉर्मटमध्ये आहे की नाही हे तपासून पाहण्यासाठी रेजेक्स ( RegEx) नावाचे सूत्र वापरण्यात येते. पीएचपीमध्ये या रेजेक्सची माहिती मिळत नाही कारण हे सूत्र पर्ल या लँग्वेजचा उपयोग करून लिहिले जाते. रेजेक्स म्हणजे रेग्युलर एक्स्प्रेशन्स.
आता पर्ल म्हणजे PERL ( Practical Extraction and Report Language). पर्ल फाईलच्या शेवटी .pl असे एक्स्टेंशन असते.
#
Comment
Regular expressions
Metacharacters char
meaning
^ beginning of string
$ end of string
. any character
except newline
* match 0 or
more times
+ match 1 or more
times
? match 0 or 1
times; or: shortest match
| alternative
( ) grouping;
"storing"
[ ] set of
characters
{ } repetition modifier
\ quote or
special
To
present a metacharacter as a data character standing for itself, precede it
with \ (e.g. \. matches the full stop character . only).
Repetition
a* zero or more a's
a+ one or more a's
a? zero or one a's
(i.e., optional a)
a{m}
exactly m a's
a{m,}
at least m a's
a{m,n}
at least m but at
most n a's
repetition?
same as repetition but the
shortest match is taken
Read
"a's" as "occurrences of strings, each of which matches the
pattern a". Read repetition as any of the repetition expressions listed
above it. Shortest match means that the shortest string matching the pattern is
taken. The default is "greedy matching", which finds the longest match.
The repetition? construct was introduced in Perl version 5.
Special
notations with \
Single
characters \t tab
\n newline
\r return (CR)
\xhh
character with
hex. code hh
"Zero-width assertions" \b
"word" boundary
\B not a
"word" boundary
Matching
\w matches any single character classified as a "word" character
(alphanumeric or _)
\W matches any
non-"word" character
\s matches any
whitespace character (space, tab, newline)
\S matches any
non-whitespace character
\d matches any
digit character, equiv. to [0-9]
\D matches any
non-digit character
Character
sets: specialities inside [...]
Different
meanings apply inside a character set ("character class") denoted by
[...] so that, instead of the normal rules given here, the following apply:
[characters]
matches any of the characters in the
sequence
[x-y]
matches any of the
characters from x to y (inclusively) in the ASCII code
[\-]
matches the hyphen
character -
[\n]
matches the newline;
other single character denotations with \ apply normally, too
[^something]
matches any character except those that [something] denotes; that is,
immediately after the leading [ the circumflex ^ means "not" applied
to all of the rest
Examples expression matches...
a|b either of a and b
^abc|abc$
the string abc at the beginning or at
the end of the string
ab{2,4}c
an a followed by two, three or
four b's followed by a c
ab{2,}c
an a followed by at least two
b's followed by a c
ab*c
an a followed by any number
(zero or more) of b's followed by a c
ab+c
an a followed by one or more
b's followed by a c
ab?c
an a followed by an optional
b followed by a c; that is, either abc or ac
a.c an a followed by any single
character (not newline) followed by a c
a\.c
a.c exactly
[abc]
any one of a, b and c
[Aa]bc
either of Abc and abc
[abc]+
any (nonempty) string of a's,
b's and c's (such as a, abba, acbabcacaa)
[^abc]+
any (nonempty) string which
does not contain any of a, b and c (such as defg)
\d\d
any two decimal digits,
such as 42; same as \d{2}
\w+
a "word": a
nonempty sequence of alphanumeric characters and low lines (underscores), such
as foo and 12bar8 and foo_
100\s*mk
the strings 100 and mk optionally
separated by any amount of white space
(spaces, tabs, newlines)
abc\b
abc when followed by a word
boundary (e.g. in abc! but not in abcd)
perl\B
perl when not followed by a
word boundary (e.g. in perlert but not in perl stuff)
इमेल तपासण्यासाठी खालील रेजेक्स वापरले जाते.
^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,6}$
वरील नियमांवरून आपल्याला या रेजेक्सचा अर्थ काढता येईल. पहिले चिन्ह ^ इमेल स्ट्रिंगची सुरुवात तर $ इमेल स्ट्रिंगचा शेवट दर्शविते. इमेलच्या स्ट्रिंगमध्ये मुख्य तीन भाग [ ] या कंसांनी दाखविले आहेत व ते + चिन्हांनी एकत्र जोडले आहेत.. दुसर्या भागाचे पहिले चिन्ह @ असावे व तिसर्या भागाचे पहिले चिन्ह . असावे ( \ हे चिन्ह एस्केप कॅरेक्टर आहे.) असे यावरून कळते. चा पहिला पार्ट A-Z0-9 म्हणजे अल्फान्युमरिक अक्षरांचा व काही विशिष्ट चिन्हांचा असावा. मधला भाग अल्फान्युमरिक अक्षरांचा व . किंवा - चिन्हांचा तर शेवटच्या भागातील अक्षरे A-Z0-9 म्हणजे अल्फान्युमरिक असावीत व त्या भागातील एकूण अक्षरे २ ते ६ पर्यंत असावीत
कोड इग्नायटरमध्ये वेबसाईट लिंकमध्ये लागणारी index.php फाईल काढून टाकण्यासाठी खालील .htaccess ही फाईल वेबसाईट फोल्डरमध्ये ठेवावी लागते.
RewriteEngine on
RewriteCond $1 !^(index\.php|[Javascript / CSS / Image root Folder name(s)]|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
रेजेक्स नियमांचा उपयोग वरील फाईल मध्ये केला आहे. $1 हे फंक्शन RewriteCond च्या सुरुवातीस व शेवटी आहे पहिल्या ओळीचा अर्थ म्हणजे लिंकमध्ये सुरुवातीस index.php किंवा Javascript / CSS / Image root Folder name(s) नसतील ( सुरुवातीच्या ! चिन्हाचा अर्थ) तर वरील सर्व स्ट्रिंग index.php ने रिप्लेस करावी.
Ꮋi, just wantеd to mentіon, I enjoyed this aгticle.
ReplyDeleteIt was inspiring. Keep on posting!