在使用Java的正则表达式进行检验时,需要注意以下几点:

  1. 正则表达式中的特殊字符需要进行转义,例如‘.’和‘+’。所以在正则表达式中,‘.’应该写成‘.’,‘+’应该写成‘+’。
  2. Java中的正则表达式需要使用双反斜杠进行转义。所以在Java的正则表达式中,‘.’应该写成‘\.’,‘+’应该写成‘\+’。
  3. 在Java中使用String.matches()方法进行正则表达式匹配时,需要注意正则表达式要与整个字符串完全匹配。即要包含^$来限定整个字符串的开始和结束。

所以,对于你提供的token和正则表达式,可以进行如下修改:

String token = 'Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX25hbWUiOiJ-FgHhIiwic2NvcGUiOlsiYWxsIl0sImlkIjoxMDA1MzMsImV4cCI6MTY5MjA2NDE1NCwiYXV0aG9yaXRpZXMiOlsiMSJdLCJqdGkiOiIwSHNqQUtoZEZaQ0FCZlYxRFkzemhndE1ZZTAiLCJjbGllbnRfaWQiOiJhY2NvdW50LXdlYiJ9.H6Y6kljmj967_Uv20NvdqlfppdpAmibs6PMk6ssUVa6VMFiTKHnTiqMUMZVHasAciND3e6M28hYiPjMf3BG8U8V_SuwsDtr320LoLaRnIdnR8zDjD2kAIXu6gbeROoMcxIQYEJtRu3GrUvv2Ljmh1f_t5SkOCVQxXgCR42e0cmo';
String regex = '^Bearer\s(?<token>[a-zA-Z0-9-._~+/]+=*)$';

boolean isValid = token.matches(regex);
System.out.println(isValid);  // true

通过上述修改后,正则表达式将能够正确匹配该token,输出结果为true

Java 正则表达式验证Bearer Token失败原因及解决方案

原文地址: https://www.cveoy.top/t/topic/qjzS 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录