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

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

Newsboat RSS Reader

Let me tell what is rss reader then i will explain about newsboat,. RSS stands for Rich Site Summary. Simply it is way to subscribe to webpages and when new article is published you can see through the feeds. you get the idea Newsboat is a terminal rss reader which is simple, easy to use and highly customizable how to find rss feed link ?                                   simple trick that i used to find rss feeds in a website check for rss image like above [OR] Right click the website -> view page souce and search for rss copy the link and paste it in urls file in the .config/newsboat/urls (for linux and mac) RSS feeds from twitter: https://twitrss.me/twitter_user_to_rss/?user=<USERNAME> https://www.twitrss.me/twitter_search_to_rss/?term=<SEARCH TERM> example: https://twitrss.me/twitter_user_to_rss/?user=Hytale https://www.twitrss.me/twitter_search_to_rss/?term=Hytale RSS feeds from youtube: https://www.youtube.com/feeds/videos.xml?channel_id

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