হেক্সাডেসিমাল সংখ্যা যা ১০-এর চেয়ে বড় এবং যার দৈর্ঘ্য জোড়, সেটি মিল করার জন্য রেগুলার এক্সপ্রেশন:
^(?=.{10,255}$)(?:0x)?\p{XDigit}{2}(?:\p{XDigit}{2})*$
যেখানে,
^ — স্ট্রিংয়ের শুরু।
(?=.{10,255}$) — ১০ থেকে ২৫৫ ক্যারেক্টার দিয়ে সমাপ্ত স্ট্রিং।
\p{XDigit}{2} — দুটি হেক্সাডেসিমাল ক্যারেক্টার।
(?:\p{XDigit}{2})* — জোড় হেক্সাডেসিমাল ক্যারেক্টার-এর শূন্য বা অধিক সিকোয়েন্স।
$ — স্ট্রিংয়ের শেষ।
উদাহরণ ১
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
আউটপুট
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
উদাহরণ ২ (String.matches() ব্যবহার করে)
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");
}
}
}
আউটপুট ১
Enter your name: 0x1234567890
Given name is valid
আউটপুট ২
Enter a hexa-decimal number: 024587545
Given number is not valid