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

【BOOST程序库】正则表达式相关操作

基本概念这里不解释了,代码中详细解释了BOOST程序库中对于正则表达式常用方法的详细用法。

#include <iostream>
#include <string>//正则表达式头文件
#include <boost/xpressive/xpressive.hpp>int main() {//声明正则:boost::pressive::cregexboost::xpressive::cregex reg = boost::xpressive::cregex::compile("a.c");//匹配正则:boost::pressive::cregex_matchif (boost::xpressive::regex_match("abc", reg)) {std::cout << "匹配成功" << std::endl;}else {std::cout << "匹配失败!" << std::endl;}if (boost::xpressive::regex_match("a=c", reg)) {std::cout << "匹配成功" << std::endl;}else {std::cout << "匹配失败!" << std::endl;}if (boost::xpressive::regex_match("a+c", reg)) {std::cout << "匹配成功" << std::endl;}else {std::cout << "匹配失败!" << std::endl;}//字符串正则://声明正则:622421197706251568//R"(\d{6}(1|2)\d{3}(0|1)\d[0-3]\d\d{3}(X|\d))"boost::xpressive::cregex reg1 = boost::xpressive::cregex::compile(R"(622421(1|2)\d{3}(0|1)[1-9][1-3][0-9]\d{3}(\d|X))");std::cout << boost::xpressive::regex_match("62242119770611231X", reg1) << std::endl;std::cout << boost::xpressive::regex_match("622421200506111765", reg1) << std::endl;std::cout << boost::xpressive::regex_match("622421162506311564", reg1) << std::endl;std::cout << boost::xpressive::regex_match("62242115960621231X", reg1) << std::endl;std::cout << boost::xpressive::regex_match("622421200412452156", reg1) << std::endl;boost::xpressive::cregex reg3 = boost::xpressive::cregex::compile("string-(.{4})");char Str[] = "this is a string-xxxx";boost::xpressive::cmatch what;boost::xpressive::regex_search(Str, what, reg3);//正则表达式,匹配成功后替换:std::string Str1 = "readmereadme.txt";boost::xpressive::sregex regg1 = boost::xpressive::sregex::compile("(.*)(me)");boost::xpressive::sregex regg2 = boost::xpressive::sregex::compile("(t)(.)(t)");//替换:$1代表找到的m的位置std::cout << boost::xpressive::regex_replace(Str1, regg1, "$1ing") << std::endl;  //readmereading.txtstd::cout << boost::xpressive::regex_replace(Str1, regg1, "ing") << std::endl;    //ing.txtstd::cout << boost::xpressive::regex_replace(Str1, regg1, "$1L$2") << std::endl;  //readmereadLme.txtstd::cout << boost::xpressive::regex_replace(Str1, regg2, "$1L$3") << std::endl;  //readmereadme.tLt//替换文件名:std::cout << boost::xpressive::regex_replace(Str1, regg2, "$1exe") << std::endl;  //readmereadme.texestd::cout << boost::xpressive::regex_replace(Str1, regg2, "$1L$2") << std::endl;  //readmereadme.tLxsystem("pause");return 0;
}
http://www.lryc.cn/news/104607.html

相关文章:

  • 阿里云国际版在使用过程中应该注意什么呢?
  • Flutter Provider 共享状态管理
  • std vector 用法
  • vue vite ts electron ipc addon-napi c arm64
  • 机器人科普--AGILOX 叉车
  • Django的生命周期流程图(补充)、路由层urls.py文件、无名分组和有名分组、反向解析(无名反向解析、有名反向解析)、路由分发、伪静态
  • selenium交互代码
  • 下载远程服务器文件
  • [SQL挖掘机] - 索引
  • C++STL库中的list
  • 【LeetCode 75】第十七题(1493)删掉一个元素以后全为1的最长子数组
  • 配置IPv6 over IPv4 GRE隧道示例
  • Google Earth Engine谷歌地球引擎提取多波段长期反射率数据后绘制折线图并导出为Excel
  • 第三大的数
  • 正则表达式中的方括号[]有什么用?
  • SQL编写规范
  • Azure pipeline自动化打包发布
  • 【算法提高:动态规划】1.4 状态机模型 TODO
  • ip link add 命令
  • unity事件处理
  • 《ChatGPT原理最佳解释,从根上理解ChatGPT》
  • 大数据Flink(五十):流式计算简介
  • 13-4_Qt 5.9 C++开发指南_基于QWaitCondition 的线程同步_Wait
  • STM32(HAL)多串口进行重定向(printf函数发送数据)
  • 29_互联网(The Internet)(IP数据包;UDP;TCP;DNS;OSI)
  • xShell常用命令
  • React性能优化之Memo、useMemo
  • IDEA开启并配置services窗口
  • vue2企业级项目(三)
  • QT 在label上透明绘图