473,387 Members | 1,520 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,387 software developers and data experts.

Regular Expressions

I am trying to work out a regular expression which will validate a
password box.

The following rules apply
Must be 8 characters
Must have at least one digit (0-9) and at least one character (a-z or
A-Z)
No special characters allowed except for full stop.

I am struggling to get to grips with regular expressions. Can anyone
help me with this please.
Thanks in anticipation

Ros Lee
Nov 22 '05 #1
14 3304
Maybe we need to && the conditional statements with three regex patterns:
r1 = [a-zA-Z0-9]{8}
r2 = [a-zA-Z]{1,7}
r3 = [0-9]{1,7}

or just use r2 "anded" to r3 with a string length of 8.

Eg.:
option 1: (I like this one better. It has a more definitive and tighter
constraint on the string pattern compared to opt2)
if ((Regex.IsMatch(sPassword, r1)) &&
(Regex.IsMatch(sPassword, r2)) &&
(Regex.IsMatch(sPassword, r3)))

option 2:
if ((Regex.IsMatch(sPassword, r2)) &&
(Regex.IsMatch(sPassword, r3)) &&
(sPassword.Length == 8))
http://www.regular-expressions.info/ has a good tutorial on regex.

Try it see if either works and good luck,
/Js.

"Roz Lee" <ro**@panztel.com> wrote in message
news:b7************************@posting.google.com ...
I am trying to work out a regular expression which will validate a
password box.

The following rules apply
Must be 8 characters
Must have at least one digit (0-9) and at least one character (a-z or
A-Z)
No special characters allowed except for full stop.

I am struggling to get to grips with regular expressions. Can anyone
help me with this please.
Thanks in anticipation

Ros Lee

Nov 22 '05 #2
Maybe we need to && the conditional statements with three regex patterns:
r1 = [a-zA-Z0-9]{8}
r2 = [a-zA-Z]{1,7}
r3 = [0-9]{1,7}

or just use r2 "anded" to r3 with a string length of 8.

Eg.:
option 1: (I like this one better. It has a more definitive and tighter
constraint on the string pattern compared to opt2)
if ((Regex.IsMatch(sPassword, r1)) &&
(Regex.IsMatch(sPassword, r2)) &&
(Regex.IsMatch(sPassword, r3)))

option 2:
if ((Regex.IsMatch(sPassword, r2)) &&
(Regex.IsMatch(sPassword, r3)) &&
(sPassword.Length == 8))
http://www.regular-expressions.info/ has a good tutorial on regex.

Try it see if either works and good luck,
/Js.

"Roz Lee" <ro**@panztel.com> wrote in message
news:b7************************@posting.google.com ...
I am trying to work out a regular expression which will validate a
password box.

The following rules apply
Must be 8 characters
Must have at least one digit (0-9) and at least one character (a-z or
A-Z)
No special characters allowed except for full stop.

I am struggling to get to grips with regular expressions. Can anyone
help me with this please.
Thanks in anticipation

Ros Lee

Nov 22 '05 #3
Just out of curiousity - why use regular expressions? Your problem is
just a few lines of non-regular expression code - why not just code
it the boring old way?

Nov 22 '05 #4
Just out of curiousity - why use regular expressions? Your problem is
just a few lines of non-regular expression code - why not just code
it the boring old way?

Nov 22 '05 #5
Hi Jimi,
Just out of curiousity - why use regular expressions? Your problem is
just a few lines of non-regular expression code - why not just code
it the boring old way?


I am almost writting that forever however in this case, I think it will
needs more lines.
What did you think of?

Cor

Nov 22 '05 #6
Hi Jimi,
Just out of curiousity - why use regular expressions? Your problem is
just a few lines of non-regular expression code - why not just code
it the boring old way?


I am almost writting that forever however in this case, I think it will
needs more lines.
What did you think of?

Cor

Nov 22 '05 #7
I think you can use a positive lookahead to put the "and" into the regex:
"^(?=.*\d)(?=.*[a-zA-Z])(?:.{8,})$"
I tested it only on a few cases, but it seems to work.

(I assume for password verification efficiency isn't that important)

Niki

"John Smith" <.@.> wrote in news:De*****************@twister.socal.rr.com...
Maybe we need to && the conditional statements with three regex patterns:
r1 = [a-zA-Z0-9]{8}
r2 = [a-zA-Z]{1,7}
r3 = [0-9]{1,7}

or just use r2 "anded" to r3 with a string length of 8.

Eg.:
option 1: (I like this one better. It has a more definitive and tighter
constraint on the string pattern compared to opt2)
if ((Regex.IsMatch(sPassword, r1)) &&
(Regex.IsMatch(sPassword, r2)) &&
(Regex.IsMatch(sPassword, r3)))

option 2:
if ((Regex.IsMatch(sPassword, r2)) &&
(Regex.IsMatch(sPassword, r3)) &&
(sPassword.Length == 8))
http://www.regular-expressions.info/ has a good tutorial on regex.

Try it see if either works and good luck,
/Js.

"Roz Lee" <ro**@panztel.com> wrote in message
news:b7************************@posting.google.com ...
I am trying to work out a regular expression which will validate a
password box.

The following rules apply
Must be 8 characters
Must have at least one digit (0-9) and at least one character (a-z or
A-Z)
No special characters allowed except for full stop.

I am struggling to get to grips with regular expressions. Can anyone
help me with this please.
Thanks in anticipation

Ros Lee


Nov 22 '05 #8
I think you can use a positive lookahead to put the "and" into the regex:
"^(?=.*\d)(?=.*[a-zA-Z])(?:.{8,})$"
I tested it only on a few cases, but it seems to work.

(I assume for password verification efficiency isn't that important)

Niki

"John Smith" <.@.> wrote in news:De*****************@twister.socal.rr.com...
Maybe we need to && the conditional statements with three regex patterns:
r1 = [a-zA-Z0-9]{8}
r2 = [a-zA-Z]{1,7}
r3 = [0-9]{1,7}

or just use r2 "anded" to r3 with a string length of 8.

Eg.:
option 1: (I like this one better. It has a more definitive and tighter
constraint on the string pattern compared to opt2)
if ((Regex.IsMatch(sPassword, r1)) &&
(Regex.IsMatch(sPassword, r2)) &&
(Regex.IsMatch(sPassword, r3)))

option 2:
if ((Regex.IsMatch(sPassword, r2)) &&
(Regex.IsMatch(sPassword, r3)) &&
(sPassword.Length == 8))
http://www.regular-expressions.info/ has a good tutorial on regex.

Try it see if either works and good luck,
/Js.

"Roz Lee" <ro**@panztel.com> wrote in message
news:b7************************@posting.google.com ...
I am trying to work out a regular expression which will validate a
password box.

The following rules apply
Must be 8 characters
Must have at least one digit (0-9) and at least one character (a-z or
A-Z)
No special characters allowed except for full stop.

I am struggling to get to grips with regular expressions. Can anyone
help me with this please.
Thanks in anticipation

Ros Lee


Nov 22 '05 #9
> Cor Ligthertwrote:
I am almost writting that forever however in this case, I think it
will needs more lines. What did you think of?
Cor


Suppose the regular expression approach takes 4 lines and 1 hour. My
approach to this trivial problem takes 12 lines and 5 minutes. This
is an easy business decision - there is no need to minimize the
number of lines of code if the tradeoff is this drastic.

I can see using regular expressions for complex problems, but it's
massive overkill for small problems.

Nov 22 '05 #10
> Cor Ligthertwrote:
I am almost writting that forever however in this case, I think it
will needs more lines. What did you think of?
Cor


Suppose the regular expression approach takes 4 lines and 1 hour. My
approach to this trivial problem takes 12 lines and 5 minutes. This
is an easy business decision - there is no need to minimize the
number of lines of code if the tradeoff is this drastic.

I can see using regular expressions for complex problems, but it's
massive overkill for small problems.

Nov 22 '05 #11
Hi Jimi,

We agree your text completly, and now looking the question over again, I
think we agree completly about this subject.

Probably is meant 2 X the 26 basic characters plus 10 numeric characters
plus an limited set of special characters, while I was thinking about all
full possible unicode set for that.

I think now also that it is simple possible without the Regex and that is
the one I always avoid. To add something to your text:

"And it needs 24 hours when updating the program, to find out what was meant
with it"

:-)

Cor

Nov 22 '05 #12
Hi Jimi,

We agree your text completly, and now looking the question over again, I
think we agree completly about this subject.

Probably is meant 2 X the 26 basic characters plus 10 numeric characters
plus an limited set of special characters, while I was thinking about all
full possible unicode set for that.

I think now also that it is simple possible without the Regex and that is
the one I always avoid. To add something to your text:

"And it needs 24 hours when updating the program, to find out what was meant
with it"

:-)

Cor

Nov 22 '05 #13
Hi Jimi,

I definitely agree with your line of reasoning. But in this regard, I'm not
sure if the 1h to 5 mins ratio apply. We are, after all, talking about
validating only a few characters, and not a full text file. So short and
expressiveness wherever applicable is also a good choice.

Niki also gave a more concise pattern. So :) in the end it depends to the
programmer to choose which method she wants to use. We're merely responding
to her question with an expected type of answer, rather than ask why not
this or that.

/Js.

"Jimi" <ji************@yahoo-dot-ca.no-spam.invalid> wrote in message
news:40**********@127.0.0.1...
Cor Ligthertwrote:

I am almost writting that forever however in this case, I think it
will needs more lines. What did you think of?
Cor


Suppose the regular expression approach takes 4 lines and 1 hour. My
approach to this trivial problem takes 12 lines and 5 minutes. This
is an easy business decision - there is no need to minimize the
number of lines of code if the tradeoff is this drastic.

I can see using regular expressions for complex problems, but it's
massive overkill for small problems.

Nov 22 '05 #14
"Jimi" <ji************@yahoo-dot-ca.no-spam.invalid> wrote in
news:40**********@127.0.0.1...
...
Suppose the regular expression approach takes 4 lines and 1 hour.
I didn't spend more than 5 minutes on that regex (including testing).
Maybe your regex skills need some training ;-)
My approach to this trivial problem takes 12 lines and 5 minutes.
Including testing? (buffer-overruns, chinese unicode characters...)
(The .net regex-engine already is well-tested)
This is an easy business decision - there is no need to minimize the
number of lines of code if the tradeoff is this drastic.
You don't know the OP's code.
Maybe the password-check-rules should be stored in a configuration file?
Or maybe an admin should be able to modify them?
Maybe the OP uses a validation framework that will only accept regular
expressions?
Or maybe she simple wants to get a better understanding of regular
expressions.
I can see using regular expressions for complex problems, but it's
massive overkill for small problems.


Definitely, but it's hard to tell if this is one of the complex problems or
only a simple one. (see above)

Niki
Nov 22 '05 #15

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

8
by: Michael McGarry | last post by:
Hi, I am horrible with Regular Expressions, can anyone recommend a book on it? Also I am trying to parse the following string to extract the number after load average. ".... load average:...
1
by: Kenneth McDonald | last post by:
I'm working on the 0.8 release of my 'rex' module, and would appreciate feedback, suggestions, and criticism as I work towards finalizing the API and feature sets. rex is a module intended to make...
2
by: Sehboo | last post by:
Hi, I have several regular expressions that I need to run against documents. Is it possible to combine several expressions in one expression in Regex object. So that it is faster, or will I...
4
by: Együd Csaba | last post by:
Hi All, I'd like to "compress" the following two filter expressions into one - assuming that it makes sense regarding query execution performance. .... where (adate LIKE "2004.01.10 __:30" or...
7
by: Billa | last post by:
Hi, I am replaceing a big string using different regular expressions (see some example at the end of the message). The problem is whenever I apply a "replace" it makes a new copy of string and I...
3
by: a | last post by:
I'm a newbie needing to use some Regular Expressions in PHP. Can I safely use the results of my tests using 'The Regex Coach' (http://www.weitz.de/regex-coach/index.html) Are the Regular...
25
by: Mike | last post by:
I have a regular expression (^(.+)(?=\s*).*\1 ) that results in matches. I would like to get what the actual regular expression is. In other words, when I apply ^(.+)(?=\s*).*\1 to " HEART...
1
by: Allan Ebdrup | last post by:
I have a dynamic list of regular expressions, the expressions don't change very often but they can change. And I have a single string that I want to match the regular expressions against and find...
13
by: Wiseman | last post by:
I'm kind of disappointed with the re regular expressions module. In particular, the lack of support for recursion ( (?R) or (?n) ) is a major drawback to me. There are so many great things that can...
12
by: FAQEditor | last post by:
Anybody have any URL's to tutorials and/or references for Regular Expressions? The four I have so far are: http://docs.sun.com/source/816-6408-10/regexp.htm...
0
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.