java - 编写用于从字符串中提取信息的正则表达式
问题描述
我在下面提供了一个字符串:
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=(.*?)\;) 的正则表达式,但这仅捕获第一项。我也想拥有其他两个术语。我如何为此目的编写正则表达式?
解决方案
它会是这样的:
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;
推荐阅读
- java - TFLITE 中的 tf.signal.rFFT 在 JAV 中不起作用
- python - 将带有扩展名的文件名保存到现有文件名
- iframe - 如果用户使用相同的站点 cookie 属性 Lax 登录选项卡(使用 NTLM 登录),则在另一个选项卡上,用户不应在 iframe 中自动登录
- javascript - 如何在javascript中将应用程序的值作为变量?
- powershell - 如何识别已建立但不活动的 SSH 隧道
- python - 创建时自动更新模型字段
- reactjs - 使用选项列表时出现未定义值错误
- python - gtts.tts.gTTSError: 无法连接 (host='translate.google.com', port=443 '无法连接到代理。)
- deep-learning - 目标检测中的骨干网络
- python - Pandas DF Groupby