Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-MD5字符串检查和正则表达式错误_Java_Regex_Md5 - Fatal编程技术网

Java-MD5字符串检查和正则表达式错误

Java-MD5字符串检查和正则表达式错误,java,regex,md5,Java,Regex,Md5,我不明白为什么这样不行。问题出在哪里 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.ma

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

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}是做什么的

我们将非常感谢您的帮助,
谢谢。

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

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

非常感谢!工作得很有魅力。但是,如果我要查看一页又一页的lorem ipsum以找到任何MD5哈希,我只会删除^和$?谢谢,非常感谢@AdamGreenhill是的,因为它将在任何环境中匹配。@AdamGreenhill我已编辑了我的答案。我仔细检查了一遍,结果发现
String.matches
已经检查了整个字符串,所以^和$在这里实际上没有什么区别(尽管它们没有坏处)。您可以使用来检查字符串中的任何位置是否匹配。