0

我不明白为什么这不起作用。问题出在哪里。

public class MD5hash {
public static void main(String []args){
    String md5hash = "69a329523ce1ec88bf63061863d9cb14";
    System.out.println(md5hash);
    System.out.println(md5hash.matches("[a-f0-9] {32}"));
}}

为了实际使用 md5hash.matches,我需要逐个字符比较。也许我不明白贪婪量词 {32} 是做什么的?

帮助将不胜感激,谢谢。

4

1 回答 1

2

正则表达式中的空格很重要。正则表达式的第一部分匹配单个十六进制字符,第二部分要求它匹配 32 个空格。您需要删除空间。您可能还希望允许使用大写变体。所以,这应该做你想要的:

System.out.println(md5hash.matches("[a-fA-F0-9]{32}"));
于 2013-07-22T01:33:52.953 回答