• Tuesday, February 09, 2010 7:43 PM

It's been a while since I've had to use regular expressions.

Can someone explain this to me in layman's terms?

^(?=.{8,30})(?=.*[^A-Za-z])(?=.*[A-Z])(?=.*[a-z]).*

### All Replies

• Tuesday, February 09, 2010 8:14 PM

These are all assertions...

^ = starting from the beginning of the string...
(?=.{8,30}) = there is a string that is at least 8 characters long... (the upper bound of 30 cannot work this way)
(?=.*[^A-Za-z]) = somewhere in the string, there is at least one non-alphabetic character...
(?=.*[A-Z]) = somewhere in the string, there is at least one uppercase character...
(?=.*[a-z]) = somewhere in the string, there is at least one lowercase character....

.* match anyting, provided that all the above conditions are met.

HTH
--mc
• Marked As Answer by Tuesday, February 09, 2010 8:16 PM
•
• Tuesday, February 09, 2010 8:17 PM

Thanks.
• Tuesday, February 09, 2010 9:26 PM
Moderator

(?=.{8,30}) = there is a string that is at least 8 characters long... (the upper bound of 30 cannot work this way)

Mario has a point...the above fails. To enforce the thirty character limit change the pattern to this:

^(?!.{31})(?=.{8})(?=.*[^A-Za-z])(?=.*[A-Z])(?=.*[a-z]).*\$

(?!.{31})  - Match invalidator, if it finds 31 characters it invalidates the match. Nothing returned
\$ - END of line

To add to Mario's, correct, statement

.* Match anything, zero or more times.

William Wegerson (www.OmegaCoder.Com )
• Proposed As Answer by Tuesday, February 22, 2011 7:08 PM
•
• Tuesday, February 22, 2011 7:10 PM

This pattern surely limits 30 chars and also accepts one or more numeral, small case and upper case alphabets.
Regards, Rule the Codes and Code New Rules
• Friday, March 04, 2011 4:29 AM

great stub !!
Vedigoundan Gurunathan
• Wednesday, April 13, 2011 1:39 PM

Very good !
• Monday, April 25, 2011 7:52 AM

Hi LarryEis,

Use the below expression,

^(?!.{31})(?=.{8})(?=.*[^A-Za-z])(?=.*[A-Z])(?=.*[a-z]).*\$

^  = starting from the beginning of the string
(?=.{8,31}) = there is a string that is at least 8 characters long... (the upper bound of 31)
(?=.*[^A-Za-z]) = somewhere in the string, there is at least one non-alphabetic character
(?=.*[A-Z]) = somewhere in the string, there is at least one uppercase character
(?=.*[a-z]) = somewhere in the string, there is at least one lowercase character

Thanks

Roozan Bharucha

MCT, MCPD Windows Frmwk 4.0

• Proposed As Answer by Monday, April 25, 2011 9:34 AM
•
• Friday, April 29, 2011 10:13 AM

This regex can also be helpful:

{8,15}\$)(?=.*\d)((?=.*\W+)|(?=.*[A-Z]))(?![.\n]).*\$

This is according to the standards which asks for minimum 8 to maximum 15 characters

One mandatory UpperCase Alphabet,

One mandatory LowerCase Alphabet,

One mandatory Number.

• Monday, May 23, 2011 7:21 AM

Yes , I agree with this ?= is the condition if the case is this then whats the result

\ is the escape case

[A-Z] any character between A -Z

* any case i.e small or capital letters

8-15 strength of the letter

• Saturday, June 18, 2011 5:34 PM

Assert a string is 8 or more characters:
(?=.{8,})

Assert a string contains at least 1 lowercase letter (zero or more characters followed by a lowercase character):
(?=.*[a-z])

Assert a string contains at least 1 uppercase letter (zero or more characters followed by an uppercase character):
(?=.*[A-Z])

Assert a string contains at least 1 digit:
(?=.*[\d])

Assert a string contains at least 1 special character:
(?=.*[\W])

Assert a string contains at least 1 special character or a digit:
(?=.*[\d\W])

• Proposed As Answer by Monday, July 04, 2011 8:08 PM
• Unproposed As Answer by Monday, July 04, 2011 8:09 PM
•
• Tuesday, February 07, 2012 9:00 AM

Regular expressions are one of those things where you have to keep in practise as it could become quite complicated.. But if you don't use it for a while and suddenly jump into it again, it all comes back..
• Monday, February 13, 2012 5:36 AM

• Tuesday, February 14, 2012 5:10 PM

I need one for

Minimum of 8 (eight) characters and at least 1 non-alphanumeric characters.

Is it right?

^(?=.{8,})(?=.*[^A-Za-z])*

• Wednesday, May 23, 2012 10:00 AM

Refer Following urls