Skip to main content

Regex Fun

Regex is one of powerful tool for pattern matching

today we are going to solve one of the regex problem for password matching

Question:
- The password must contain atleast one special character among # ! _ $ @
- The password must contain atleast two numbers
- The password must contain atleast one upper case alphabet and one lower case alphabet.
- The password must have a minimum length of 8.
- The password must have a maximum length of 25.

Example Input/Output:
Example 1:
Input:
kiC_3b0x3r
Output:
VALID
Example 2:
Input:
m@d31nindia
Output:
INVALID
Explanation:
No alphabet in uppercase.
Example 3:
Input:
M1kT!s0
Output:
INVALID
Explanation:
Minimum length  must be 8

Answer:
^(?=(?:[^a-z]*[a-z]){1})(?=(?:[^A-Z]*[A-Z]){1})(?=(?:[^0-9]*[0-9]){2})(?=(?:[^#!_$@]*[#!_$@]*){1}).{8,25}$

Explanation:
^(?=(?:[^a-z]*[a-z]){1})  check for atleast one a-z
(?=(?:[^A-Z]*[A-Z]){1})  check for atleast one a-z
(?=(?:[^0-9]*[0-9]){2})   check for atleast two numbers
(?=(?:[^#!_$@]*[#!_$@]*){1}).{8,25}$  check for atleast one special characters

{8,25} => minimum length is 8 and maximum length is 25

Things which are confusing are
?: -> is called non-capturing group which is bit confusing lets understand using a example

([0-9]+)(?:st|nd|rd|th)?

we have 1st,2nd,3rd,4th,.............

That will match numbers in the form 1, 2, 3... or in the form 1st, 2nd, 3rd,... but
it will only capture the numeric part.

?= -> lookheads there is good source to learn it easy try below link
          Lookahead

{} -> No of occurance

Resources:
http://www.regular-expressions.info/lookaround.html
https://stackoverflow.com/questions/2973436/regex-lookahead-lookbehind-and-atomic-groups
https://regex101.com/library/fR8728

any doubts drop in the comments

Comments

Popular posts from this blog

Ecosia

ECOSIA - A Green search engine “ Ecosia donates 80% profits to planting trees” Site: www.ecosia.org Lauched on 7 th December 2009 and created by Christian Kroll available in more than 26 language. It is located in Berlin, Germany.It is also called as CO2-neutral company.Ecosia has donated to different tree-planting programs. Until December 2010 Ecosia’s donations went to a program by WWF Germany that protected the Juruena-National park in the Amazonas. In order to make sure the protection was kept up, the program also drew up and financed plans with timber companies and the  local communities. According to B-labs, as of January 2015, "In donating 80 percent of its ad revenue, the search engine has raised over $1.5 million for rainforest protection since its founding in December 2009." According to Ecosia, by 2015, the search engine had almost 2.5 million active users, and searches through it had resulted in more than 2 million trees being planted.Since October 201...

C program jackpot

/*Program to show sum of 10 elements of array & show the average.*/ #include<stdio.h> int main () { int a[ 10 ],i,sum = 0 ; float av; printf( "enter elements of an aaray: " ); for (i = 0 ;i < 10 ;i ++ ) scanf( "%d" , & a[i]); for (i = 0 ;i < 10 ;i ++ ) sum = sum + a[i]; printf( "sum=%d" ,sum); av = sum / 10 ; printf( "average=%.2f" ,av); return 0 ; } Output: enter elements of an array : 4 4 4 4 4 4 4 4 4 4 sum = 40 average = 4.00 /*Program to find the maximum no. in an array.*/ #include<stdio.h> void main () { int a[ 5 ],max,i; printf( "enter element for the array: " ); for (i = 0 ;i < 5 ;i ++ ) scanf( "%d" , & a[i]); max = a[ 0 ]; for (i = 1 ;i < 5 ;i ++ ) { if (max < a[i]) max = a[i]; } printf( "maximum no= %d" ,max); } Output: enter elements for array : 5 4 7 1 2 maximum no = 7 /*Swapp...

codefest-ctf-18 writeup

Codefest is online CTF challenge conducted by Hackerrank on August 31 2018 6:00 PM IST to September 1 2018 12:00 PM IST. They have given dozens of challenges.  link: https://www.hackerrank.com/contests/codefest-ctf-18/challenges I manage to complete two challenges in this article i will explain how i solved the two  Typing Master Question If you think you have it in you, connect now to 34.216.132.109 9093 and prove your mettle. You will be presented with a simple typing task which is meant to check your typing speed. For example, Can you type 'Z' 10 times followed by 'u' 6 times, followed by the sum of their ASCII values? ZZZZZZZZZZuuuuuu207 Input Format Regarding input to the server - The question was designed keeping netcat in mind. Some users who are using other tools/language (eg, Python, PuTTY, TELNET) to connect to the server please note that they do not terminate the strings like netcat does. If you choose not to use netcat, t...