Java Regex找到Hex String

时间:2014-12-11 08:08:46

标签: java regex

我有一个包含十六进制值的字符串,如\ x76 \ x6f \ x69 \ x64 \ x28 \ x29(void())表示,我想搜索\ x76 \ x6f \ x69 \ x64 \ x28 \ x29中的值上面的字符串。

需要java regex模式。

提前感谢。

1 个答案:

答案 0 :(得分:1)

由于这似乎是某种调试器输出,我假设您的意思是带有转义序列的字符串,而不是这些转义序列所代表的字符。在那种情况下:

String s = "\\x76\\x6f\\x69\\x64\\x28\\x29 (void())";
String s2 = s.replaceAll("^((\\\\x[0-9a-f]{2})+) .*$", "$1");

\\x[0-9a-f]{2}(对于Java字符串正确转义)与字符序列匹配,并且从那里开始只有^(sequence+) .*$,即多次匹配序列,捕获它(在{{ 1}}),并丢弃其余的字符串。

这假设字符串以字符序列序列开头。如果不是这种情况,则必须删除$1(与字符串的开头匹配)。