判断字符串是否包含正则表达式默认的特殊字符c++

判断字符串是否包含正则表达式默认的特殊字符

业务描述:

上层配置的字符列表中,既有准确的字符串,又有可以进行正则匹配的字符串,这时候需要区分出来那些是正则匹配的字符串。

思路:

判断字符串中,是否存在正则表达式默认的特殊字符,如*^${}等。

代码:


#include <iostream>
#include <regex>using namespace std;// check if code contains regex special chars:*$^+?\{}|
static const string regexLimit = {".*[*$^+?\\\\{}|]+.*"};
static const std::regex pattern(regexLimit);
bool isRegex(const std::string& str) {try {return std::regex_match(str, pattern);}catch(const std::exception& e) {std::cout << "regex error:" << e.what() << endl;return false;}
}int main(int argc, char const *argv[])
{std::cout<< "hello world!" << std::endl;string temp1 = "*demo.*";string temp2 = "^com.*.demo.*";string temp3 = "car$";string temp4 = "com.d+dmode";string temp5 = "com.d?dmode";string temp6 = "com.d\\dmode";string temp7 = "com.d{dmode";string temp8 = "com.d}dmode";string temp9 = "com.d|dmode";string temp41 = "com.demo.test";vector<std::string> list;list.push_back(temp1);list.push_back(temp2);list.push_back(temp3);list.push_back(temp4);list.push_back(temp5);list.push_back(temp6);list.push_back(temp7);list.push_back(temp8);list.push_back(temp9);list.push_back(temp41);for (size_t i = 0; i < list.size(); i++){bool result = isRegex(list[i]);printf("i:%ld isRegex?:%d\n", i, result);}printf("hello world end.");return 0;
}

输出:

hello world!
i:0 isRegex?:1
i:1 isRegex?:1
i:2 isRegex?:1
i:3 isRegex?:1
i:4 isRegex?:1
i:5 isRegex?:1
i:6 isRegex?:1
i:7 isRegex?:1
i:8 isRegex?:1
i:9 isRegex?:0
hello world end.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/670896.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SF相关1111

AndroidQ 图形系统&#xff08;11&#xff09;UI刷新&#xff0c;SurfaceFlinger&#xff0c;Vsync机制总结_android viewrootimpl surfaceflinger hw-CSDN博客

C语言之字符逆序(牛客网)

个人主页&#xff08;找往期文章包括但不限于本期文章中不懂的知识点&#xff09;&#xff1a;我要学编程(ಥ_ಥ)-CSDN博客 字符逆序__牛客网 题目&#xff1a; 思路&#xff1a;既然有空格就不能用scanf函数来接收字符了。因为scanf函数遇到空格会停止读取。我们可以用get…

解决:VSCode 连接服务器时出错:Could not establish connection to : XHR failed

对于 VSCode 1.86.0 版本&#xff0c;若出现这个错误&#xff0c;简易方法是回退到 1.85.x 版本&#xff0c;VSCode 1.85.x 官方下载地址实际上很多 VSCode 连接不上服务器的问题&#xff0c;都可以靠三个步骤暴力解决 SSH 连接服务器&#xff0c;然后删除已有的服务器端的 VS…

UE5 获得频谱让nigara随音乐律动

参考视频:UE - Niagara实现可视化音乐动态粒子效果 案例演示及教程_哔哩哔哩_bilibili 先创建一个Niagara 在Properties的Sim Target改为GPU,Calculate Bounds Mode改为Fixed模式 生成的数量改为1000 这里的BoxSize可以选择修改,具体作用是粒子初始生成的范围 Drag,阻力,用来限…

Android rom定制 修改system分区的容量大小

1、写在前面 系统ROM定制化,预置app太多,会导致系统rom很大,原生系统system分区已经不够用了,要加大系统systemui分区 2.修改system分区的容量大小的核心类 device/mediatekprojects/$project/BoardConfig.mk build/make/core/Makefile3、修改system 分区的容量大小的核…

Java上(2024尚硅谷)

day01.[环境变量,HelloWorld] 1.会常用的dos命令 2.会安装java所需要的环境(jdk) 3.会配置java的环境变量 4.知道java开发三步骤 5.会java的入门程序(HelloWorld) 6.会三种注释方式 7.知道Java入门程序所需要注意的地方 8.知道println和print的区别第一章 Java概述 1.1 JavaS…

康佳智能电视LED32IS97N 刷机升级方法,及刷机数据,务必先查物料号确认一致才能刷机

升级步骤&#xff1a; 康佳电视串号检测平台 &#xff1a; http://service.kkapp.com/KKAFTERSALE/pages/sn/sn.jsp 务必确认自己的主程序软件号&#xff08;物料号&#xff09; 强制刷机方法&#xff1a; 1、下载刷机数据包&#xff0c;先把文件 NAND_TARGET.rar 解压&#…

【自定义序列化器】⭐️通过继承JsonSerializer和实现WebMvcConfigurer类完成自定义序列化

目录 前言 解决方案 具体实现 一、自定义序列化器 二、两种方式指定作用域 1、注解 JsonSerialize() 2、实现自定义全局配置 WebMvcConfigurer 三、拓展 WebMvcConfigurer接口 章末 前言 小伙伴们大家好&#xff0c;上次做了自定义对象属性拷贝&#x…

Dijkstra算法(求最短路)

简介&#xff1a; 迪杰斯特拉算法(Dijkstra)是由荷兰计算机科学家狄克斯特拉于1959年提出的&#xff0c;因此又叫狄克斯特拉算法。是从一个顶点到其余各顶点的最短路径算法&#xff0c;解决的是有权图中最短路径问题。 特点&#xff1a; 迪杰斯特拉算法采用的是一种贪心策略&a…

【Java基础】关于Java基础的一些有趣的常识!

前言 今天看到了一篇文章&#xff0c;是关于茶余饭后的Java常识的一些有趣解答&#xff0c;我觉得写的很有趣很易懂&#xff0c;所以截取了其中我觉得比较有趣的问题分享给大家。原文&#xff1a;饭后茶余的java常识 - 知乎 (zhihu.com) 1. Java语言的特点有哪些&#xff1f; …

MySQL的DML语言

DML&#xff1a;Data Manipulation Language&#xff08;数据操作语言&#xff09; DML语言用来对数据库中表的数据记录进行增、删、改操作。 一、添加数据命令 注意&#xff1a; 插入数据时&#xff0c;指定的字段顺序需要与值的顺序是一一对应的。 字符串和日期型数据应该包…

#pragma once和条件编译

#pragma once 和 #ifndef 是 C/C 中用于防止头文件被多次包含的两种不同的预处理器指令。 一、那么为什么要防止头文件被重复包含 头文件的重复包含问题需要避免的原因主要有以下几点&#xff1a; 编译效率&#xff1a; 如果头文件被重复包含多次&#xff0c;编译器需要重复解…

【并发编程】手写线程池阻塞队列

&#x1f4dd;个人主页&#xff1a;五敷有你 &#x1f525;系列专栏&#xff1a;并发编程 ⛺️稳重求进&#xff0c;晒太阳 示意图 步骤1&#xff1a;自定义任务队列 变量定义 用Deque双端队列来承接任务用ReentrantLock 来做锁并声明两个条件变量 Condition fullWai…

网站不收录,与服务器不备案有关吗

随着互联网的快速发展&#xff0c;网站已经成为企业、个人和机构宣传和展示自己的重要平台。然而&#xff0c;许多网站在建设完成后却面临着不收录的问题&#xff0c;这给网站的管理者和拥有者带来了很大的困扰。其中&#xff0c;一些人认为&#xff0c;网站不收录的原因与服务…

代码随想录算法训练营第23天(回溯1)| 回溯算法的理论77.组合问题

回溯的理论基础 其实在讲解二叉树的时候&#xff0c;就给大家介绍过回溯&#xff0c;这次正式开启回溯算法&#xff0c;大家可以先看视频&#xff0c;对回溯算法有一个整体的了解。 题目链接/文章讲解 视频讲解 回溯的总结&#xff1a; 树的深度&#xff08;递归的层数&…

什么是Instagram Reels?用好Reels 让你的流量暴涨!

Instagram Reels是Instagram在2020年全新推出的短视频功能&#xff0c;旨在与TikTok展开竞争。作为跨境卖家的你&#xff0c;利用 Reels 这一神器&#xff0c;将为你带去更多的流量。那该如何利用好这一神器呢&#xff1f;本篇文章&#xff0c;大白将带大家深入了解 Reels 并用…

推动海外云手机发展的几个因素

随着科技的不断发展&#xff0c;海外云手机作为一种新兴技术&#xff0c;在未来呈现出令人瞩目的发展趋势。本文将在用户需求、技术创新和全球市场前景等方面&#xff0c;探讨海外云手机在未来的发展。 1. 用户需求的引领&#xff1a; 随着人们对移动性和便捷性的需求不断增长&…

《Git 简易速速上手小册》第2章:理解版本控制(2024 最新版)

文章目录 2.1 本地仓库与版本历史2.1.1 基础知识讲解2.1.2 重点案例&#xff1a;回滚错误提交2.1.3 拓展案例 1&#xff1a;利用 git bisect 查找引入 bug 的提交2.1.4 拓展案例 2&#xff1a;合并提交历史 2.2 远程仓库的使用2.2.1 基础知识讲解2.2.2 重点案例&#xff1a;在 …

通过Harbor构建docker私服仓库

Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器&#xff0c;它扩展了开源的Docker Distribution&#xff0c;通过添加一些企业必需的功能特性&#xff0c;如安全、标识和管理等。Harbor由VMware公司开发并开源&#xff0c;旨在帮助用户迅速搭建一个企业级的Docke…

点云transformer算法: FlatFormer 论文阅读笔记

代码&#xff1a;https://github.com/mit-han-lab/flatformer论文&#xff1a;https://arxiv.org/abs/2301.08739[FlatFormer.pdf] Flatformer是对点云检测中的 backbone3d部分的改进工作&#xff0c;主要在探究怎么高效的对点云应用transformer 具体的工作如下&#xff1a;一…