我不明白为什么这行不通。问题出在哪里。

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,我需要逐个比较char。
也许我不明白贪婪量词{32}的作用?

并感谢您的帮助,
谢谢。

最佳答案

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

System.out.println(md5hash.matches("[a-fA-F0-9]{32}"));

10-05 18:28