Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
The re.sub() tool (sub stands for substitution) evaluates a pattern and, for each valid match, it calls a method (or lambda).
The method is called for all matches and can be used to modify strings in different ways.
The re.sub() method returns the modified string as an output.
Learn more about re.sub()
Transformation of Strings
Code :
import re
#Squaring numbers
def square(match):
number = int(match.group(0))
return str(number**2)
print re.sub(r"\d+", square, "1 2 3 4 5 6 7 8 9")
Output :
1 4 9 16 25 36 49 64 81
Replacements in Strings :
Code :
import re
html = """
<head>
<title>HTML</title>
</head>
<object type="application/x-flash"
data="your-file.swf"
width="0" height="0">
<!-- <param name="movie" value="your-file.swf" /> -->
<param name="quality" value="high"/>
</object>
"""
print re.sub("(<!--.*?-->)", "", html) #remove comment
Output :
<head>
<title>HTML</title>
</head>
<object type="application/x-flash"
data="your-file.swf"
width="0" height="0">
<param name="quality" value="high"/>
</object>
You are given a text of N lines. The text contains && and || symbols.
Your task is to modify those symbols to the following:
&& → and || → or
Both && and || should have a space ” ” on both sides.
The first line contains the integer, N.
The next N lines each contain a line of the text.
&&
nor ||
occur in the start or end of each line.Output the modified text.
11
a = 1;
b = input();
if a + b > 0 && a - b < 0:
start()
elif a*b > 10 || a/b < 1:
stop()
print set(list(a)) | set(list(b))
#Note do not change &&& or ||| or & or |
#Only change those '&&' which have space on both sides.
#Only change those '|| which have space on both sides.
a = 1;
b = input();
if a + b > 0 and a - b < 0:
start()
elif a*b > 10 or a/b < 1:
stop()
print set(list(a)) | set(list(b))
#Note do not change &&& or ||| or & or |
#Only change those '&&' which have space on both sides.
#Only change those '|| which have space on both sides.
import re
n = int(raw_input())
for _ in range(0, n):
line = raw_input()
line = re.sub(r'\ [\&]{2,2}\ ', ' and ', line)
line = re.sub(r'\ [\|]{2,2}\ ', ' or ', line)
line = re.sub(r'\ [\&]{2,2}\ ', ' and ', line)
line = re.sub(r'\ [\|]{2,2}\ ', ' or ', line)
print(line)
import re
ii = int(input())
for i in range(0,ii):
txt = input()
txt = re.sub(r"\ \&\&\ "," and ",txt)
txt = re.sub(r"\ \|\|\ "," or ",txt)
txt = re.sub(r"\ \&\&\ "," and ",txt)
txt = re.sub(r"\ \|\|\ "," or ",txt)
print(txt)
# Enter your code here. Read input from STDIN. Print output to STDOUT
import sys
import re
pat = re.compile(r'''(?<= )(&&|\|\|)(?= )''', re.U|re.I|re.M|re.S)
for idx in range(int(raw_input())):
l = raw_input()
if pat.search(l):
print(pat.sub(lambda m: 'and' if m.group(1) =='&&' else 'or', l))
else:
print(l)
import re
for _ in range(int(input())):
str_ = input()
str_ = re.sub(r"(?<= )(&&)(?= )", "and", str_)
print(re.sub(r"(?<= )(\|\|)(?= )", "or", str_))
In our experience, we suggest you solve this Regex Substitution Hacker Rank Solution and gain some new skills from Professionals completely free and we assure you will be worth it.
Regex Substitution is available on Hacker Rank for Free, if you are stuck anywhere between compilation, just visit Queslers to get all Hacker Rank Solution
I hope this Regex Substitution Hacker Rank Solution would be useful for you to learn something new from this problem. If it helped you then don’t forget to bookmark our site for more Hacker Rank, Leetcode, Codechef, Codeforce Solution.
This Problem is intended for audiences of all experiences who are interested in learning about Data Science in a business context; there are no prerequisites.
Keep Learning!
More Hacker Rank Problem & Solutions >>
Mini-Max Sum Hacker Rank Solution
String Validators Hacker Rank Solution
Text Alignment Hacker Rank solution