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
已经检查了整个字符串,所以^和$在这里实际上没有什么区别(尽管它们没有坏处)。您可以使用来检查字符串中的任何位置是否匹配。