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

这篇具有很好参考价值的文章主要介绍了【BOOST程序库】正则表达式相关操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

基本概念这里不解释了,代码中详细解释了BOOST程序库中对于正则表达式常用方法的详细用法。文章来源地址https://www.toymoban.com/news/detail-611098.html

#include <iostream>
#include <string>

//正则表达式头文件
#include <boost/xpressive/xpressive.hpp>

int main() {
	//声明正则:boost::pressive::cregex
	boost::xpressive::cregex reg = boost::xpressive::cregex::compile("a.c");
	//匹配正则:boost::pressive::cregex_match
	if (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.txt
	std::cout << boost::xpressive::regex_replace(Str1, regg1, "ing") << std::endl;    //ing.txt
	std::cout << boost::xpressive::regex_replace(Str1, regg1, "$1L$2") << std::endl;  //readmereadLme.txt
	std::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.texe

	std::cout << boost::xpressive::regex_replace(Str1, regg2, "$1L$2") << std::endl;  //readmereadme.tLx


	system("pause");
	return 0;
}

到了这里,关于【BOOST程序库】正则表达式相关操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL正则表达式检索数据

    目录 一、使用正则表达式进行基本字符匹配 1.使用regexp 2.使用正则表达式  .  二、进行OR匹配 1.为搜索两个串之一,使用   |   2.匹配几个字符之一[] 3.匹配范围  4.匹配特殊字符 过滤数据允许使用 匹配、比较、通配符 操作来寻找数据,但是随着过滤条件的复杂性增

    2024年02月14日
    浏览(34)
  • 从零开始学Java56--与字符串相关的正则表达式

    在上一篇文章中给大家介绍了 String字符串及其各种常用API方法 ,接下来继续给大家讲解一些 String字符串的高级玩法。 有时候我们操作一个字符串时,这个字符串的内容并不一定就是固定不变的。比如在用户注册时,我们要求用户在输入框中输入自己的手机号码。我们知道,

    2024年02月06日
    浏览(42)
  • mysql 正则表达式 提取 指定字符

    eg: 使用正则表达式来进行匹配替换: REGEXP_REPLACE(\\\'需要进行替换的字段‘, ‘被替换的’,‘替换的内容’) eg: 模式 说明 ^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 ‘n’ 或 ‘r’ 之后的位置。 $ 匹配输入字符串的结束位置。

    2024年02月06日
    浏览(47)
  • VsCode中常用的正则表达式操作

    在vscode中可以使用正则表达式来进行搜索内容,极大的方便了我们对大量数据中需要查看的信息进行筛选,使用正则搜索时点击 .* 此文章会持续补充常用的正则操作 将搜索的内容进行全选,举例:在如下文件中我需要对NO字符进行搜索,并且选中所有的NO 选中所有匹配项快捷

    2024年02月07日
    浏览(44)
  • 56从零开始学Java之与字符串相关的正则表达式

    作者 :孙玉昌,昵称【 一一哥 】,另外【 壹壹哥 】也是我哦 CSDN博客专家、万粉博主、阿里云专家博主、掘金优质作者 在上一篇文章中, 壹哥 给大家介绍了String字符串及其各种常用API方法,接下来 壹哥 继续给大家讲解一些String字符串的高级玩法。 有时候我们操作一个字

    2024年02月14日
    浏览(41)
  • java 正则表达式操作 --各种方法的区别

    结论:Pattern与Matcher一起合作.Matcher类提供了对正则表达式的分组支持,以及对正则表达式的多次匹配支持. 单独用Pattern只能使用Pattern.matches(String regex,CharSequence input)一种最基础最简单的匹配。 java正则表达式通过java.util.regex包下的Pattern类与Matcher类实现(建议在阅读本文时,打开

    2024年01月19日
    浏览(46)
  • MySQL数据库——MySQL REGEXP:正则表达式

    正则表达式主要用来查询和替换符合某个模式(规则)的文本内容。例如,从一个文件中提取电话号码,查找一篇文章中重复的单词、替换文章中的敏感语汇等,这些地方都可以使用正则表达式。正则表达式强大且灵活,常用于非常复杂的查询。 MySQL 中,使用  REGEXP  

    2024年02月01日
    浏览(49)
  • Matlab字符操作进阶:正则表达式(附上多个案例源码)

    Matlab是一种强大的编程语言和环境,广泛应用于科学计算、数据分析和算法开发。在Matlab中,使用字符正则表达式可以对字符串进行高级操作和处理。本文将介绍Matlab中字符正则表达式的基本语法和常见应用。 首先,我们需要了解正则表达式的基本概念。正则表达式是一种用

    2024年02月09日
    浏览(42)
  • 【MySQL】不允许你不会用正则表达式进行搜索

    🎬 博客主页:博主链接 🎥 本文由 M malloc 原创,首发于 CSDN🙉 🎄 学习专栏推荐:LeetCode刷题集! 🏅 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 📆 未来很长,值得我们全力奔赴更美好的生活✨ 😁大家好呀,今天是我第N次写MySQL,也是最近才学习MySQL,也想着记录

    2024年02月11日
    浏览(53)
  • Java:正则表达式书写规则及相关案例:检验QQ号码,校验手机号码,邮箱格式,当前时间

    目标:体验一下使用正则表达式来校验数据格式的合法性。 需求:校验QQ号码是否正确,要求全部是数字,长度是(6-20)之间,不能以0开头

    2024年02月12日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包