使用\ x十六进制正则表达式模式中的变量

时间:2017-07-27 05:23:02

标签: java android regex

我尝试用字节值拆分一些String。 喜欢"第一个\ x00second"通过0x00分配器。我发现编译器不能将\ x标记与变量结合起来。

static public ArrayList split_by_byte(String value, byte spliter) {

if (spliter < 0)
throw new IllegalArgumentException("Отрицательное значение разделителя: " + spliter);

ArrayList<String> result = new ArrayList();

String[] groups = value.split("[\\x" + spliter + "]");

for (String group : groups) {

result.add(group);
}

return result;
}

如何在\ xNN等模式中使用变量值?

1 个答案:

答案 0 :(得分:1)

在正则表达式中,您不能在单引号/非内插字符串中使用\ x。它必须由词法分析员看到。

因为代字号不是元字符。

添加使用正则表达式&#34; debug&#34;你会看到实际发生的事情。

你也可以使用模式和匹配器类以及拆分方法......