# Matching Character Ranges – HackerRank Solution

In this post, we will solve Matching Character Ranges HackerRank Solution. This problem (Matching Character Ranges) is a part of HackerRank Regex series.

## Objective

In the context of a regular expression (RegEx), a character class is a set of characters enclosed within square brackets that allows you to match one character in the set.

A hyphen (`-`) inside a character class specifies a range of characters where the left and right operands are the respective lower and upper bounds of the range. For example:

• [az]Â is the same asÂ [abcdefghijklmnopqrstuvwxyz].
• [AZ]Â is the same asÂ [ABCDEFGHIJKLMNOPQRSTUVWXYZ].
• [0 – 9]Â is the same asÂ [0123456789].

In addition, if you use a caret (`^`) as the first character inside a character class, it will match anything that isÂ notÂ in that range. For example,Â [^0-9]Â matches any character that isÂ notÂ a digit in the inclusive range fromÂ 0Â toÂ 9. It’s important to note that, when used outside of (immediately preceding) a character or character class, the caret matches the first character in the string against that character or set of characters.

Write a RegEx that will match a string satisfying the following conditions:

• The string’s length isÂ >= 5.
• The first character must be a lowercase English alphabetic character.
• The second character must be aÂ positiveÂ digit. Note that we consider zero to be neither positive nor negative.
• The third character mustÂ notÂ be a lowercase English alphabetic character.
• The fourth character mustÂ notÂ be an uppercase English alphabetic character.
• The fifth character must be an uppercase English alphabetic character.

In the editor below, replace the blank (`_________`) with a RegEx pattern satisfying the criteria above. This is a RegEx-only challenge, so you are not required to write any additional code.

## Solution – Matching Character Ranges – HackerRank Solution

### Python

```Regex_Pattern = r'^[a-z][1-9][^a-z][^A-Z][A-Z].*'   # Do not delete 'r'.

import re

print(str(bool(re.search(Regex_Pattern, input()))).lower())
```

Note: This problem (Matching Character Ranges) is generated by HackerRank but the solution is provided by CodingBroz. This tutorial is only for Educational and Learning purpose.