Ну, вы МОЖЕТЕ использовать для этого регулярное выражение, но я бы сказал, что это немного излишне.
Лучшее использование для регулярных выражений здесь - удалить все возможные не шестнадцатеричные символы из строки с помощью:
String hexStr = subjectString.replaceAll("[^0-9A-Fa-f]", "");
В любом случае, вот как можно преобразовать шестнадцатеричную строку в простой ASCII:
С 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();
Без RegEx:
StringBuilder output = new StringBuilder("");
for (int i = 0; i < hexStr.length(); i += 2) {
String str = hexStr.substring(i, i + 2);
output.append((char) Integer.parseInt(str, 16));
}
output.toString();