当前位置: 首页 > java >正文

【仿muduo库实现并发服务器】使用正则表达式提取HTTP元素

使用正则表达式提取HTTP元素

  • 1.正则表达式
  • 2.正则库的使用
  • 3.使用正则表达式提取HTTP请求行

1.正则表达式

正则表达式它其实是描述了一种字符串匹配的模式,它可以用来在一个字符串中检测一个特定格式的字串,以及可以将符合特定规则的字串进行替换或者提取的功能。

2.正则库的使用

bool std:regex_match (const std:string &src, std:smatch &matches, std:regex &e)

1.src表示要匹配的原始字符串
2.matches,匹配提取的子串会放入这里,类似一个数组
3.e:正则表达式的匹配规则
4.返回值:用于确定匹配是否成功

3.使用正则表达式提取HTTP请求行

#include <iostream>
#include<regex>
#include <string>
int main()
{std::string str="GET /qq.com/login?user=tew&paswwd=123 HTTP/1.1\r\n";std::smatch matches;//匹配规则std::regex e("(GET|POST|PUT) ([^?]*)(?:\\?(.*))? (HTTP/1\\.[01])(?:\n|\r\n)?");//()表示要提取的子串//.是匹配除\n和\r之外的任何单个字符。//*表示匹配0次或多次//_([^?*])表示以空格开始,匹配并提取非问号的字符,*表示匹配0次或多次//\\?(.*)_表示以?开始,匹配?后面字符0次或多次,以空格为结尾 //_(HTTP/1\\.[01]) 表示以空格开始,提取HTTP1. 0或1的字符//(?: )? 这个是匹配某个字符串但不提取,最后?表示匹配前面表达式0次或1次//中间的?user=tew&paswwd=123不是所有的http请求都有,所以有就提取没有就不提取//(?:\\?(.*))? 如果有就执行\\?(.*),如果没有就算bool ret=std::regex_match(str,matches,e);if(ret==false)return -1;for(auto &it:matches){std::cout<<it<<std::endl;}return 0;}

在这里插入图片描述

http://www.xdnf.cn/news/10543.html

相关文章:

  • java基础学习(二十一)
  • oscp练习 PG Wombo
  • 「完整」AI文档库 | 5月20最新发布,221页,《北京大学AI+Agent与Agentic+AI的原理和应用洞察与未来展望》
  • ChatOn:智能AI聊天助手,开启高效互动新时代
  • pikachu靶场通关笔记09 XSS关卡05-DOM型XSS-X
  • 第18讲、Odoo接口开发详解:原理、类型与实践
  • 【软件测试】火狐驱动下载镜像
  • Golang学习之旅
  • linux驱动 - 5: simple usb device驱动
  • 小白的进阶之路系列之十----人工智能从初步到精通pytorch综合运用的讲解第三部分
  • CppCon 2014 学习:Exception-Safe Coding
  • [免费]微信小程序网上花店系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】
  • Cesium快速入门到精通系列教程四:加载渲染GEOJSON数据
  • BA-SAM: 用于 Segment Anything 模型的可扩展偏置模式注意力掩码
  • vue-13(延迟加载路由)
  • Oracle的Hint
  • 2025/6月最新Cursor(0.50.5版本)一键自动更换邮箱无限续杯教程
  • Spring 5 响应式编程:构建高性能全栈应用的关键
  • 数据库系统概论(十二)SQL 基于派生表的查询 超详细讲解(附带例题表格对比带你一步步掌握)
  • MySQL-多表关系、多表查询
  • Qt OpenGL 相机实现
  • 机器学习算法:逻辑回归
  • 操作系统复习
  • 方法重写与方法重载详解
  • CSS之动画(奔跑的熊、两面反转盒子、3D导航栏、旋转木马)
  • 谷歌CEO皮查伊眼中的“下一代平台“与未来图景
  • 基于FPGA的VGA显示文字和动态数字基础例程,进而动态显示数据,类似温湿度等
  • Pyomo中线性规划接口的使用
  • 为什么ping显示connect:network is unreachable,如何排查网络不通问题?
  • LearnOpenGL-笔记-其十三