# How to validate GST (Goods and Services Tax) number using Regular Expression

Given string str, the task is to check whether the given string is a valid GST (Goods and Services Tax) number or not using Regular Expression
The valid GST (Goods and Services Tax) number must satisfy the following conditions:

1. It should be 15 characters long.
2. The first 2 characters should be a number.
3. The next 10 characters should be the PAN number of the taxpayer.
4. The 13th character (entity code) should be a number from 1-9 or an alphabet.
5. The 14th character should be Z.
6. The 15th character should be an alphabet or a number.

Examples:

Input: str = “06BZAHM6385P6Z2”;
Output: true
Explanation:
The given string satisfies all the above mentioned conditions. Therefore, it is a valid GST (Goods and Services Tax) number.
Input: str = “06BZAF67”;
Output: false
Explanation:
The given string is not 15 characters long. Therefore, it is not a valid GST (Goods and Services Tax) number.
Input: str = “AZBZAHM6385P6Z2”;
Output: false
Explanation:
The given string starts with alphabet. Therefore, it is not a valid GST (Goods and Services Tax) number.

Approach: The idea is to use the concept of Regular Expression to solve this problem. The following steps can be followed to compute the answer:

• Get the String.
• Create a regular expression to check valid GST (Goods and Services Tax) number as mentioned below:

regex = “^[0-9]{2}[A-Z]{5}[0-9]{4}[A-Z]{1}[1-9A-Z]{1}Z[0-9A-Z]{1}\$”;

• Where:
• ^ represents the starting of the string.
• [0-9]{2} represents the first two characters should be a number.
• [A-Z]{5} represents the next five characters should be any upper case alphabets.
• [0-9]{4} represents the next four characters should be any number.
• [A-Z]{1} represents the next character should be any upper case alphabet.
• [1-9A-Z]{1} represents the 13th character should be a number from 1-9 or an alphabet.
• Z represents the 14th character should be Z.
• [0-9A-Z]{1} represents the 15th character should be an alphabet or a number.
• \$ represents the ending of the string.
• Match the given string with the Regular Expression. In Java, this can be done by using Pattern.matcher().
• Return true if the string matches with the given regular expression, else return false.

Below is the implementation of the above approach:

## Java

 `// Java program to validate the` `// GST (Goods and Services Tax) number` `// using regular expression.`   `import` `java.util.regex.*;`   `class` `GFG {`   `    ``// Function to validate` `    ``// GST (Goods and Services Tax) number.` `    ``public` `static` `boolean` `isValidGSTNo(String str)` `    ``{` `        ``// Regex to check valid` `        ``// GST (Goods and Services Tax) number` `        ``String regex = ``"^[0-9]{2}[A-Z]{5}[0-9]{4}"` `                       ``+ ``"[A-Z]{1}[1-9A-Z]{1}"` `                       ``+ ``"Z[0-9A-Z]{1}\$"``;`   `        ``// Compile the ReGex` `        ``Pattern p = Pattern.compile(regex);`   `        ``// If the string is empty` `        ``// return false` `        ``if` `(str == ``null``) {` `            ``return` `false``;` `        ``}`   `        ``// Pattern class contains matcher()` `        ``// method to find the matching` `        ``// between the given string` `        ``// and the regular expression.` `        ``Matcher m = p.matcher(str);`   `        ``// Return if the string` `        ``// matched the ReGex` `        ``return` `m.matches();` `    ``}`   `    ``// Driver Code.` `    ``public` `static` `void` `main(String args[])` `    ``{`   `        ``// Test Case 1:` `        ``String str1 = ``"06BZAHM6385P6Z2"``;` `        ``System.out.println(` `            ``isValidGSTNo(str1));`   `        ``// Test Case 2:` `        ``String str2 = ``"06BZAF67"``;` `        ``System.out.println(` `            ``isValidGSTNo(str2));`   `        ``// Test Case 3:` `        ``String str3 = ``"AZBZAHM6385P6Z2"``;` `        ``System.out.println(` `            ``isValidGSTNo(str3));`   `        ``// Test Case 4:` `        ``String str4 = ``"06BZ63AHM85P6Z2"``;` `        ``System.out.println(` `            ``isValidGSTNo(str4));`   `        ``// Test Case 5:` `        ``String str5 = ``"06BZAHM6385P6F2"``;` `        ``System.out.println(` `            ``isValidGSTNo(str5));` `    ``}` `}`

## Python3

 `# Python3 program to validate ` `# GST (Goods and Services Tax) number  ` `# using regular expression` `import` `re`   `# Function to validate GST ` `# (Goods and Services Tax) number.` `def` `isValidMasterCardNo(``str``):`   `    ``# Regex to check valid ` `    ``# GST (Goods and Services Tax) number ` `    ``regex ``=` `"^[0-9]{2}[A-Z]{5}[0-9]{4}"` `+` `            ``"[A-Z]{1}[1-9A-Z]{1}"` `+` `            ``"Z[0-9A-Z]{1}\$"` `    `  `    ``# Compile the ReGex` `    ``p ``=` `re.``compile``(regex)`   `    ``# If the string is empty ` `    ``# return false` `    ``if` `(``str` `=``=` `None``):` `        ``return` `False`   `    ``# Return if the string ` `    ``# matched the ReGex` `    ``if``(re.search(p, ``str``)):` `        ``return` `True` `    ``else``:` `        ``return` `False`   `# Driver code`   `# Test Case 1:` `str1 ``=` `"06BZAHM6385P6Z2"` `print``(isValidMasterCardNo(str1))`   `# Test Case 2:` `str2 ``=` `"06BZAF67"` `print``(isValidMasterCardNo(str2))`   `# Test Case 3:` `str3 ``=` `"AZBZAHM6385P6Z2"` `print``(isValidMasterCardNo(str3))`   `# Test Case 4:` `str4 ``=` `"06BZ63AHM85P6Z2"` `print``(isValidMasterCardNo(str4))`   `# Test Case 5:` `str5 ``=` `"06BZAHM6385P6F2"` `print``(isValidMasterCardNo(str5))`   `# This code is contributed by avanitrachhadiya2155`

Output:

```true
false
false
false
false

```

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.