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){
// 創(chuàng)建正則表達式對象
Pattern pattern = Pattern.compile(regexPartten);
// 用對象去匹配內(nèi)容
Matcher matcher = pattern.matcher(data);
// 執(zhí)行匹配操作,如果匹配成功,則返回true
if (matcher.find()) {
String ssoInfoValue = matcher.group(1);
// group(1)只展示被匹配到的內(nèi)容
log.info("正則表達式的結(jié)果為: " + ssoInfoValue);
// group(0)返回的信息是帶著正則表達式文案的
log.info("正則表達式的group(0)為:"+matcher.group(0));
return ssoInfoValue;
} else {
log.info("正則表達式返回結(jié)果為空");
return null;
}
}
}
使用以及結(jié)果
下面這個即為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("后臺管理系統(tǒng)登錄后的cookie為:{},ssoinfo為{}",cookie,ssoInfo);
結(jié)果文章來源:http://www.zghlxwxcb.cn/news/detail-565146.html
16:25:34.694 [main] INFO com.datafactory.util.RegexUtils - 正則表達式的結(jié)果為: 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 - 正則表達式的結(jié)果為: 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 - 后臺管理系統(tǒng)登錄后的cookie為:SESSION=b85ac2b7-de5c-42a8-b656-f0502a7646d7;,ssoinfo為6b1b55697f6206ce8ccc52b46b216a3f
推薦這個網(wǎng)站,看起來更直觀
正則在線
真正比較難的事兒吧,是怎么寫這個正則表達式
有的表達式不是不能用,只是在java程序中不好用,怎么辦呢,推薦用chatgpt吧,讓他來幫你寫表達式
第一步,先把文案發(fā)出去
第二步提出需求文章來源地址http://www.zghlxwxcb.cn/news/detail-565146.html
到了這里,關(guān)于java通過正則表達式提取信息的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!