• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

java通过正则表达式提取信息

武飞扬头像
舌尖上的蛋炒饭
帮助1

java通过正则表达式提取信息

工具类如下

package com.datafactory.util;

import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

@Component
@Slf4j
public class RegexUtils {
    /**
     * data:原始文案
     * regexPartten:正则表达式
     * */
    public String regex(String data,String regexPartten){
//        创建正则表达式对象
        Pattern pattern = Pattern.compile(regexPartten);
//        用对象去匹配内容
        Matcher matcher = pattern.matcher(data);
//        执行匹配操作,如果匹配成功,则返回true
        if (matcher.find()) {
            String ssoInfoValue = matcher.group(1);
//            group(1)只展示被匹配到的内容
            log.info("正则表达式的结果为: "   ssoInfoValue);
//            group(0)返回的信息是带着正则表达式文案的
            log.info("正则表达式的group(0)为:" matcher.group(0));
            return ssoInfoValue;
        } else {
            log.info("正则表达式返回结果为空");
            return null;
        }
    }
}
学新通

使用以及结果
下面这个即为data的原文

[Server:"nginx", Date:"Thu, 13 Jul 2023 08:25:34 GMT", Content-Type:"text/html; charset=UTF-8", Transfer-Encoding:"chunked", Connection:"keep-alive", Vary:"Accept-Encoding", Content-Language:"en-US", Set-Cookie:"ssoInfo=6b1b55697f6206ce8ccc52b46b216a3f; path=/manage_new; expires=Thu, 13-Jul-2023 20:25:34 GMT", "SESSION=b85ac2b7-de5c-42a8-b656-f0502a7646d7; path=/manage_new/; HttpOnly", Access-Control-Allow-Origin:"*", Access-Control-Allow-Credentials:"true", Access-Control-Allow-Methods:"GET, POST, PUT, DELETE, OPTIONS", Access-Control-Allow-Headers:"Authorization,X-CustomHeader,Content-Type,Accept,Origin,User-Agent,DNT,Cache-Control,X-Mx-ReqToken,Keep-Alive,X-Requested-With,If-Modified-Since"]>
		//这里只截取了一部分代码,data即为上面的这个原文,下面的代码用意为从原文中获取cookie以及ssoinfo信息
        String ssoInforegex = "ssoInfo=([a-f0-9] )";
        String ssoInfo=regexUtils.regex(data,ssoInforegex);
        String cookieregex="SESSION=([a-f0-9\\-] )";
        String cookie = regexUtils.regex(data,cookieregex);
        cookie = "SESSION=" cookie ";";
        log.info("后台管理系统登录后的cookie为:{},ssoinfo为{}",cookie,ssoInfo);

结果

16:25:34.694 [main] INFO  com.datafactory.util.RegexUtils - 正则表达式的结果为: 6b1b55697f6206ce8ccc52b46b216a3f
16:25:34.694 [main] INFO  com.datafactory.util.RegexUtils - 正则表达式的group(0)为:ssoInfo=6b1b55697f6206ce8ccc52b46b216a3f
16:25:34.698 [main] INFO  com.datafactory.util.RegexUtils - 正则表达式的结果为: b85ac2b7-de5c-42a8-b656-f0502a7646d7
16:25:34.698 [main] INFO  com.datafactory.util.RegexUtils - 正则表达式的group(0)为:SESSION=b85ac2b7-de5c-42a8-b656-f0502a7646d7
16:25:34.698 [main] INFO  com.datafactory.service.impl.HTUserServiceImpl - 后台管理系统登录后的cookie为:SESSION=b85ac2b7-de5c-42a8-b656-f0502a7646d7;,ssoinfo为6b1b55697f6206ce8ccc52b46b216a3f

推荐这个网站,看起来更直观
正则在线
学新通
真正比较难的事儿吧,是怎么写这个正则表达式
有的表达式不是不能用,只是在java程序中不好用,怎么办呢,推荐用chatgpt吧,让他来帮你写表达式
第一步,先把文案发出去
学新通
第二步提出需求
学新通

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgbfabk
系列文章
更多 icon
同类精品
更多 icon
继续加载