开发者社区 问答 正文

编写正则表达式以从字符串中提取信息

我在下面提供了一个字符串:

AWSALB=eIFPQSLLQjg+; Expires=Fri, 20 Mar 2020 03:16:01 GMT; Path=/, AWSALBCORS=eIFPQSLLQjg+vW+; Expires=Fri, 20 Mar 2020 03:16:01 GMT; Path=/; SameSite=None; Secure, SilverWebAuth=48199A; expires=Fri, 13-Mar-2020 04:01:01 GMT; path=/; HttpOnly

我只想捕获以下提供的特定信息:

AWSALB=eIFPQSLLQjg+; AWSALBCORS=eIFPQSLLQjg+vW+; SilverWebAuth=48199A; 

我有(\ AWSALB =(。*?)\ ;;)的正则表达式,但这仅捕获了第一个术语。我也想另外两个词。我该如何为此编写正则表达式?

问题来源:Stack Overflow

展开
收起
montos 2020-03-27 16:51:28 432 分享
分享
版权
举报
1 条回答
写回答
取消 提交回答
  • 它会像这样:

    String a = "AWSALB=eIFPQSLLQjg+; Expires=Fri, 20 Mar 2020 03:16:01 GMT; "
             + "Path=/, AWSALBCORS=eIFPQSLLQjg+vW+; Expires=Fri, 20 Mar 2020 "
             + "03:16:01 GMT; Path=/; SameSite=None; Secure, SilverWebAuth=48199A; "
             + "expires=Fri, 13-Mar-2020 04:01:01 GMT; path=/; HttpOnly";
    
    String regex = "AWSALB=(.*?);|AWSALBCORS=(.*?);|SilverWebAuth=(.*?);";
    
    Pattern p = Pattern.compile(regex);   // the pattern to search for
    Matcher m = p.matcher(a);
    StringBuilder sb = new StringBuilder("");
    while(m.find()) {
        if (!sb.toString().equals("")) {
            sb.append(" ");
        }
        sb.append(m.group(0));
    }
    
    System.out.println(sb.toString());
    

    输出到控制台:

    AWSALB=eIFPQSLLQjg+; AWSALBCORS=eIFPQSLLQjg+vW+; SilverWebAuth=48199A;
    

    回答来源:Stack Overflow

    2020-03-27 16:51:50 举报
    赞同 评论

    评论

    全部评论 (0)

    登录后可评论
问答标签:
问答地址: