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

Docker

Docker is used to run software packages called "containers". Containers are isolated from each other and bundle their own tools, libraries and configuration files; they can communicate with each other through well-defined channels                                                                                                --Wikipedia  I have already written a article about the containers you can check out in here https://thangaayyanar.blogspot.com/2018/06/containers.html This time, let's learn more about docker engine how we can use this. The important things we need to know in docker are Docker Image:  The container can be created with the help of Image. The Image file consists of code, libraries, environment variable...

My experience in iOS Hackathon

This is my second hackathon, my first hackathon was on machine learning if you want to check out that article by following the below link https://thangaayyanar.blogspot.com/2018/02/what-i-learned-from-machine-learning.html So let's get started First let us discuss about the idea of what we are trying to achieve in this hackathon. From the above image you can able to know that we are going to recognize text from the image and use it to do find which field it is.  we separated this idea into three modules Identify the region Recognize the text  Field classification Module I : Identify the region To identify the selected region we used Vision framework ( ML framework provided by apple to detect the object ). The vision framework give us the boundary of the text region ( i.e frame - x,y,width,height ).  Then using the above region we crop the selected region and pass it to the next module. Module II : Recognize the text To recognize the text we ...

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...