• 09 Februari 2010 19:43

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]).*

Semua Balasan

• 09 Februari 2010 20:14

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
• Ditandai sebagai Jawaban oleh 09 Februari 2010 20:16
•
• 09 Februari 2010 20:17

Thanks.
• 09 Februari 2010 21:26
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 )
• Disarankan sebagai Jawaban oleh 22 Februari 2011 19:08
•
• 22 Februari 2011 19:10

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
• 04 Maret 2011 4:29

great stub !!
Vedigoundan Gurunathan
• 13 April 2011 13:39

Very good !
• 25 April 2011 7:52

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

• Disarankan sebagai Jawaban oleh 25 April 2011 9:34
•
• 29 April 2011 10:13

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.

• 23 Mei 2011 7:21

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

• 18 Juni 2011 17:34

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])

• Disarankan sebagai Jawaban oleh 04 Juli 2011 20:08
• Saran Jawaban dibatalkan oleh 04 Juli 2011 20:09
•
• 07 Februari 2012 9:00

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..
• 13 Februari 2012 5:36

• 14 Februari 2012 17:10

I need one for

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

Is it right?

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

• 23 Mei 2012 10:00

Refer Following urls