Hey guys, Hope you all are doing great.

I have always found Regular expressions or REGEX quite amazing. You can solve your string related problem in just some simple magic of patterns.
Our brain works very well to identify the pattern in our day to day life. As these are visual clues, we tend to catch and analyse them better. In fact, their you make negligible mistake to tackle the scenario.
Say you have a pattern with concentric cirles:


Now you see that it has got a pattern in here, the small circle grows by some radius say x and we have another circle and so on...
This can be generalized in mathematical way, as in geometry is:
x + y + 2gx + 2fy + c' = 0
This same thing applies to string patterns or character arrays.
For Python we have a Regex module called re

Below are few function which you will find useful is many applications 

Syntax Definition Examples
re.search(regex,str) return match object if found, else None
pika = re.search(r"\w+@\w+\.com", "from pikachu@pokemon.com address")

if pika :
    print "yes"
    print pika.group() # → pika@pika.com
else:
    print "no"


re.match(regex,str) similar to re.search(), but match starts at beginning of string.

goku = re.match('ha','kamehameha') # succeed

if goku == None:
    print "no match"
else:
    print "yes match"


re.split(regex,str) return a list.

print re.split(r' +', 'Clark   Kent  is Superman')'
# output: ['Clark', 'Kent', 'is', 'Superman']

print re.split(r'( +)(@+)', 'what   @@do  @@you @@think')
# output: ['what', '   ', '@@', 'do', '  ', '@@', 'you', ' ', '@@', 'think']

print re.split(r' ', 'a b c d e', maxsplit = 2)
# output: ['a', 'b', 'c d e']


re.findall(regex,str) return a list of non-overlapping (repeated) matches.

print re.findall(r'( +)(@+)', 'what   @@@do  @@you @think')
# output: [('   ', '@@@'), ('  ', '@@'), (' ', '@')]


re.finditer(…) similar to re.findall(), but returns a iterator.

for matched in re.finditer(r'(\w+)', 'where   are  the avengers'):
    print matched.group()       # prints each word in a line


re.sub(regex,replacement,str) does replacement. Returns the new string.

def ff(pika):
    if pika.group(0) == "bulba":
        return "vena"
    elif pika.group(0) == "mender":
        return "izard"
    else:
        return pika.group(0)

print re.sub(r"[aeiou]+", ff, "bulbasaur") # venasaur
print re.sub(r"[aeiou]+", ff, "charmender") # charizard
print re.sub(r"[aeiou]+", ff, "geek") # geek


re.subn(…) similar to re.sub(), but returns a tuple. 1st element is the new string, 2nd is number of replacement.

re.subn('\w+', 'Try', 'Cry Cry, Cry and Cry Again!', count=3)
# ('Try Try, Try and Try Again!', 3)
re.escape(str) add backslash to string for feeding it to regex as pattern. Return the new string.

re.escape('Lets meet spider man?')
# output: Lets\\ meet\\ spider\\ man\\?

To form a regular expression, it needs a bit or creativity and foresightedness of the outcome.
For sure you need to know the regex symbols and rules to do that, and all should be dancing in your mind to create an efficient and effective pattern. To help you out, below is the Python Regex Jump-starter:

Python Regex Jump-starter:
Regular Expression Basics
. Any character except newline
a The character a
ab The string ab
a|b a or b
a* 0 or more a's
\ Escapes a special character
Regular Expression Quantifiers
* 0 or more
+ 1 or more
? 0 or 1
{2} Exactly 2
{2, 5} Between 2 and 5
{2,} 2 or more
(,5} Up to 5
Default is greedy. Append ? for reluctant.
Regular Expression Groups
(...) Capturing group
(?P...) Capturing group named Y
(?:...) Non-capturing group
\Y Match the Y'th captured group
(?P=Y) Match the named group Y
(?#...) Comment
Regular Expression Character Classes
[ab-d] One character of: a, b, c, d
[^ab-d] One character except: a, b, c, d
[\b] Backspace character
\d One digit
\D One non-digit
\s One whitespace
\S One non-whitespace
\w One word character
\W One non-word character
Regular Expression Assertions
^ Start of string
\A Start of string, ignores m flag
$ End of string
\Z End of string, ignores m flag
\b Word boundary
\B Non-word boundary
(?=...) Positive lookahead
(?!...) Negative lookahead
(?<=...) Positive lookbehind
(?<!...) Negative lookbehind
(?()|) Conditional
Regular Expression Flags
i Ignore case
m ^ and $ match start and end of line
s . matches newline as well
x Allow spaces and comments
L Locale character classes
u Unicode character classes
(?iLmsux) Set flags within regex
Regular Expression Special Characters
\n Newline
\r Carriage return
\t Tab
\YYY Octal character YYY
\xYY Hexadecimal character YY
Regular Expression Replacement
\g<0></0> Insert entire match
\g Insert match Y (name or number)
\Y Insert group numbered Y

 Please let me know your feedback, on how i can improve and make it better. Till then!! Cheers!!
1

View comments

Greetings!! Here's a series of Cold Golf problems and solutions in Python as a part of 21 days of Code | Code Golf by Skillenza 

https://skillenza.com/challenge/21days-of-code

DAY - I

A Little Complex

Given n complex numbers each x + yi, where x is the real part and y is the imaginary part, find

1

For the need of a simple tabular Grid in your Angular JS application, one of the most basic and simple to use package is angular-ui-grid. The implementation is easy in many of the use cases, but when it comes to extend the limits of the ui-grid, life becomes tough.

Hey guys, Hope you all are doing great. 

Algorithm To Convert Post-fix Expression into Infix expression:-

Scan the Post-fix String from Left to Right. If the character is an Operand, then Push it on to the deque.

Hey guys, Hope you all are doing great.

As the first part of this series of Python package and installation we will cover pip vs Conda

pip vs Conda

pip

Python packages only. Compiles everything from source.

Hey guys,

Hope you all are doing great. I love Code Golfing, what it brings out in you is the hidden concepts of a programming language and especially the push to implement same thing in numerous ways.

Hey guys, Hope you all are doing great.

I have always found Regular expressions or REGEX quite amazing. You can solve your string related problem in just some simple magic of patterns.

Our brain works very well to identify the pattern in our day to day life.

1

Hey guys, Hope you all are doing great. I am back with Some Python Programming tips for

CODE GOLF Challenges.

Hey guys, Hope you all are doing great. I am back with Some Python Programming tips for

CODE GOLF Challenges.

12

Hey guys, Hope you all are doing great. I am back with with a byte of python performance.

I have been playing on codingame.com a lot now a days during my weekends.

Its cool site for the player aka coders who want to try there hands into gaming domain.

Hey guys, Hope you all are doing great. I am back with another problem of Project Euler on

Project Euler #11: Largest product in a grid

In the 20×20 grid below, four numbers along a diagonal line have been marked in bold.

Hey guys, Hope you all are doing great.

Today i came across an intruding method, which is not used in generally but is very effective and we encounter its application a lot of .

That's 

Tabibitosan method

Tabibitosan: is a Japanese word which literally means "Pilgrim".

8

Hey guys, 

Hope you all are doing great. I am back with another problem of Project Euler on

The sum of the primes below 10 is 2+3+5+7=17

Find the sum of all the primes not greater than given N.

Input Format

The first line contains an integer T i.e. number of the test cases.

Hey guys, Hope you all are doing great. I am back with a new domain SQL. So the problem goes like, you need to print prime numbers less than 1000.

Seems easy right!! Just use a for loop check for the list of natural numbers for prime condition whether they are only divisible by 1 and itself.

13

Hey guys,

Hope you all are doing great. I am back with another problem of Project Euler on

Project Euler #8: Largest product in a series

Find the greatest product of KK consecutive digits in the NN digit number.

Input Format

First line contains TT that denotes the number of test cases.

Hey guys,

Hope you all are doing great. I am back with another problem of Project Euler

Project Euler #2: Even Fibonacci numbers

Each new term in the Fibonacci sequence is generated by adding the previous two terms.

2

Hey guys, 

Hope you all are doing great. I am back with another problem of Project Euler on

Project Euler #6: Sum square difference

The sum of the squares of the first ten natural numbers is, 12+22+...+102=385. The square of the sum of the first ten natural numbers is, (1+2+⋯+10)2=552=3025.

1

Hey guys, 

Hope you all are doing great. I am back with another problem of Project Euler on

Project Euler #5: Smallest multiple

2520 is the smallest number that can be divided by each of the numbers from 1 to 10 without any remainder.

Hey guys, 

Hope you all are doing great. I am back with another problem of Project Euler on

Project Euler #3: Largest prime factor

The prime factors of 13195 are 5, 7, 13 and 29.

What is the largest prime factor of a given number N?

Input Format

First line contains T, the number of test cases.

August 17th, 2015

Hey Fellas!! So its time to roll on.

Mathematical series are very interesting in there own ways. I find them interesting as they tickles your brain to know more.

That you try to find the end. Counting on your fingers, you will get bored or either get tired.

One of the Popular contest in Hackerrank based on a famous site ProjectEuler.net is 

Project Euler+ 

Project Euler is a series of challenging mathematical/computer programming problems that will require more than just mathematical insights to solve.

Loading