Regular expression for a hexadecimal number greater than 10 and should be even in length in java.



Following is the regular expression to match hexadecimal number greater than 10 with even length −

^(?=.{10,255}$)(?:0x)?\p{XDigit}{2}(?:\p{XDigit}{2})*$

Where,

  • ^ − Matches the starting of the sentence.

  • (?=.{10,255}$) − String ending with characters with 10 to 255.

  • \p{XDigit}{2} − Two hexa-decimal characters.

  • (?:\p{XDigit}{2})* − 0 or more sequences of double hexa-decimal characters.

  • $ − Matches the end of the sentence.

Example 1

 Live Demo

import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class JavaExample51 {    public static void main(String[] args) {       Scanner sc = new Scanner(System.in);       String nums[] = new String[5];       for(int i=0; i<nums.length; i++){          System.out.println("Enter a hexa-decimal number: ");          nums[i] = sc.nextLine();       }       //Regular expression to accept English alphabet       String regex = "^(?=.{10,255}$)(?:0x)?\p{XDigit}{2}(?:\p{XDigit}{2})*$";       //Creating a pattern object       Pattern pattern = Pattern.compile(regex);       for (String hex : nums) {          //Creating a Matcher object          Matcher matcher = pattern.matcher(hex);          if(matcher.find()) {             System.out.println(hex+" is valid");          }else {             System.out.println(hex+" is not valid");          }       }    } }

Output

Enter a hexa-decimal number: 0x1234567890 Enter a hexa-decimal number: 123456789 Enter a hexa-decimal number: 123456789012 Enter a hexa-decimal number: sfdgdf35364 Enter a hexa-decimal number: $@%#BV#* 0x1234567890 is valid 123456789 is not valid 123456789012 is valid sfdgdf35364 is not valid $@%#BV#* is not valid

Example 2

 Live Demo

import java.util.Scanner; public class JavaExample {    public static void main(String[] args) {       Scanner sc = new Scanner(System.in);       System.out.println("Enter a hexa-decimal number: ");       String name = sc.nextLine();       String regex = "^(?=.{10,255}$)(?:0x)?\p{XDigit}{2}(?:\p{XDigit}{2})*$";       boolean result = name.matches(regex);       if(result) {          System.out.println("Given number is valid");       }else {          System.out.println("Given number is not valid");       }    } }

Output 1

Enter your name: 0x1234567890 Given name is valid

Output 2

Enter a hexa-decimal number: 024587545 Given number is not valid
Updated on: 2020-07-13T13:15:09+05:30

384 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements