# HackerRank Validating Roman Numerals solution in python

In this validating Roman Numerals problem, You are given a string, and you have to validate whether it's a valid Roman numeral. If it is valid, print True. Otherwise, print False.

## Problem solution in Python 2 programming.

```import sys
import re
pattern = '^M{0,3}(D?C{0,3}|C(D|M))(L?X{0,3}|X(L|C))(V?I{0,3}|I(V|X))\$'

match = re.search(pattern, string)
if match and string != '':
print 'True'
else:
print 'False'```

## Problem solution in Python 3 programming.

```thousand = 'M{0,3}'
hundred = '(C[MD]|D?C{0,3})'
ten = '(X[CL]|L?X{0,3})'
digit = '(I[VX]|V?I{0,3})'
regex_pattern = r"%s%s%s%s\$" % (thousand, hundred, ten, digit)   # Do not delete 'r'```

### Problem solution in pypy programming.

```# Enter your code here. Read input from STDIN. Print output to STDOUT
import re
pattern = '^(?=[MDCLXVI])M{0,3}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})\$'
roman = str(raw_input())
if re.search(pattern, roman):
print 'True'
else:
print 'False'```

### Problem solution in pypy3 programming.

```# Enter your code here. Read input from STDIN. Print output to STDOUT
import re

ptrn = r'^M{0,3}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})\$'
s = input().strip()

x = re.match(ptrn,s)
if x:
print(True)
else:
print(False)```