我不明白为什么这行不通。问题出在哪里。
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}"));