使用正则表达式将十六进制转换为ASCII

时间:2018-08-31 13:51:03

标签: regex hex ascii

我尝试使用Java使用正则表达式配置翻译器。

我有以下十六进制字符串: 31353333303430353431455232335445303031

,我必须将其转换并找到如下所示的ascii字符串: 1533040541ER23TE001

我的问题是我可以使用正则表达式将十六进制字符串转换为ascii字符串。

1 个答案:

答案 0 :(得分:0)

好吧,您可以为此使用正则表达式,但是我想说这有点过头了。

这里正则表达式的最佳用途是使用以下命令从字符串中删除所有可能的非十六进制字符:

Date

无论如何,这是将十六进制字符串转换为纯ASCII的方法:

使用RegEx:

String hexStr = subjectString.replaceAll("[^0-9A-Fa-f]", "");

没有RegEx:

StringBuilder output = new StringBuilder("");
Pattern regex = Pattern.compile("[0-9A-Fa-f]{2}");
Matcher regexMatcher = regex.matcher(hexStr);
while (regexMatcher.find()) {
    output.append((char) Integer.parseInt(regexMatcher.group(), 16));
}

output.toString();