Java 中大于 10 且长度应为偶数的十六进制数的正则表达式。
javaobject oriented programmingprogramming更新于 2025/8/11 5:32:17
以下是匹配大于 10 且长度为偶数的十六进制数 − 的正则表达式
^(?=.{10,255}$)(?:0x)?\p{XDigit}{2}(?:\p{XDigit}{2})*$
其中,
^ − 匹配句子的开头。
(?=.{10,255}$) −以 10 到 255 个字符结尾的字符串。
\p{XDigit}{2 − 两个十六进制字符。
(?:\p{XDigit}{2})* − 0 个或更多双十六进制字符序列。
$ − 匹配句子结尾。
示例 1
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("输入一个十六进制数:");
nums[i] = sc.nextLine();
}
//接受英文字母的正则表达式
String regex = "^(?=.{10,255}$)(?:0x)?\p{XDigit}{2}(?:\p{XDigit}{2})*$";
//创建一个 Pattern 对象
Pattern pattern = Pattern.compile(regex);
for (String hex : nums) {
//创建一个 Matcher 对象
Matcher matcher = pattern.matcher(hex);
if(matcher.find()) {
System.out.println(hex+" 有效");
}else {
System.out.println(hex+" 无效");
}
}
}
}
输出
输入一个十六进制数: 0x1234567890 输入一个十六进制数: 123456789 输入一个十六进制数: 123456789012 输入一个十六进制数: sfdgdf35364 输入一个十六进制数: $@%#BV#* 0x1234567890 有效 123456789 无效 123456789012 有效 sfdgdf35364 无效 $@%#BV#* 无效
示例 2
import java.util.Scanner;
public class JavaExample {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("输入一个十六进制数:");
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("给定的数字有效");
}else {
System.out.println("Given number is not valid");
}
}
}
输出 1
输入您的姓名: 0x1234567890 Given name is valid
输出 2
输入一个十六进制数: 024587545 Given number is not valid
相关文章
有用资源
java 参考教程 - 该教程包含有关 java 的更多信息:https://www.cainiaomax.com/java/

