正则表达式由字节分隔:问题

时间:2011-05-04 20:39:32

标签: java regex

我输入的十六进制四个字节值由以下分隔:(类似于aabbccdd:ffffffff:aaccbbff)。 如何在Java中构造正则表达式,如果输入格式正确,它将给出答案吗?

3 个答案:

答案 0 :(得分:6)

这个怎么样?

String value = "aabbccdd:ffffffff:aaccbbff";
boolean match = value.matches("\\p{XDigit}{8}(:\\p{XDigit}{8})*");
// ...

顺便说一句\p{XDigit}等于[0-9a-fA-F]。另请参阅java.util.regex.Pattern javadoc

答案 1 :(得分:1)

您正在寻找:^([0-9a-fA-F]{8}:)*([0-9a-fA-F]{8})$

可选8个十六进制数字后跟一个冒号(:)。与没有结肠的组结束。可能是一种减少RegEx的方法。

答案 2 :(得分:1)

您可以尝试使用4个字节的任意序列:[0-9a-fA-F]{8}(:[0-9a-fA-F]{8})*