直播短视频源码,实现文本替换

简介: 直播短视频源码,实现文本替换

直播短视频源码,实现文本替换相关的代码

#include <stdio.h>
#include <string>
#include <regex>
#include <fstream>
#include <iostream>
#include <set>
using namespace std;
//    ? 与 {0,1}:0个或1个前面的内容 或 前面的内容是可选的
//    * 与 {0,} : 0 个或多个前面的内容
//    + 与 {1,}: 1 个或多个前面的内容

void mtRW(string basePath,string dirName,string strReplace){
    string path = basePath+dirName+".vmoptions";
    string pathBak=basePath+dirName+".vmoptions.bak";
    string pathRe = basePath+dirName+".vmoptions-Re";
    string cmd1="gedit "+string(path);
    string cmd2="gedit "+string(pathBak);
    regex patternTempRe("^-javaagent:/home/jl73/.jetbrains/jetbrains-agent-v3.2.0.0f1f.69e=(.*)");
    string temp;
    string temp2="";
    set<string> chs;
    set<string>::iterator it;
//    regex patternSet("[^A-Za-z0-9 \\t]");
    regex patternSet("[^A-Za-z0-9 \\t\\\\]");
    smatch resultTempRe,resultSet;
    string strTempRe;

    ifstream rf(path);
    if(!rf){
        cout<<"read xxx"<<endl;
    }
    ofstream wfBak(pathBak);
    if(!wfBak){
        cout << "bak xxx" << endl;
    }
    while(getline(rf,temp)){
        wfBak<<temp<<endl;
        if(regex_match(temp,resultTempRe,patternTempRe)) {
            strTempRe=string(resultTempRe[1]);
            string::const_iterator iterStart = strTempRe.begin();
            string::const_iterator iterEnd = strTempRe.end();
            string tmp;
            while (regex_search(iterStart, iterEnd, resultSet, patternSet)) {
                tmp = resultSet[0];
                chs.insert((string)tmp);
                iterStart = resultSet[0].second;    //更新搜索起始位置,搜索剩下的字符串
            }
//            chs.erase("\\");
            strTempRe = regex_replace(strTempRe, regex("\\\\"), "\\\\");
            for (auto ch:chs) {
                strTempRe = regex_replace(strTempRe, regex("\\" + ch), "\\" + ch);
            }
            temp2=temp2+regex_replace(temp,regex(strTempRe),strReplace)+"\n";
        }
        else{
            temp2=temp2+temp+'\n';
        }
    }
    rf.close();
    wfBak.close();

//    ofstream wf(path);
    ofstream wf(pathRe);
    if(!wf){
        cout<<"write xxx"<<endl;
    }
    wf<<temp2;
    wf.close();
//    system(cmd1.c_str());
//    system(cmd2.c_str());
    cout << dirName <<"\treplace done"<< endl;
}

int main(int argc,const char *argv[]){
//    if(argc!=2){
//        perror("argc=2");
//        exit(1);
//    }
//    string basePath="/home/jl73/.config/JetBrains/";
    string basePath="/home/jl73/7-tmp/";
    string dirNames[]={"CLion2020.2/clion","GoLand2020.2/goland","IntelliJIdea2020.2/idea","PyCharm2020.2/pycharm"};
//    string strReplace="12`!@#%&-_=:|}].;\"'<>/\\\\\\\\<>. \\$^*()+{}[]|?`, /!@#%&-_=:;\"'<>.";
    string strReplace;
    ifstream rf(basePath+"str");
    if(!rf){
        cout<<"read xxx"<<endl;
    }
    getline(rf,strReplace);
//    cout << strReplace << endl;
    for (auto dirName  :dirNames ) {
        mtRW(basePath,dirName,strReplace);
//        mtRW(basePath,dirName,argv[1]);
    }
    return 0;
}

以上就是直播短视频源码,实现文本替换相关的代码, 更多内容欢迎关注之后的文章

目录
相关文章
|
Linux 网络虚拟化 虚拟化
Linux虚拟网络设备深度解析:使用场景、分类与开发者指南
Linux虚拟网络设备支撑着各种复杂的网络需求和配置,从基础的网络桥接到高级的网络隔离和加密🔐。以下是对主要Linux虚拟网络设备的介绍、它们的作用以及适用场景的概览,同时提出了一种合理的分类,并指出应用开发人员应该着重掌握的设备。
Linux虚拟网络设备深度解析:使用场景、分类与开发者指南
|
存储 数据挖掘 数据处理
Pandas中explode()函数的应用与实战
Pandas中explode()函数的应用与实战
432 0
|
消息中间件 存储 大数据
Apache Kafka: 强大消息队列系统的介绍与使用
Apache Kafka: 强大消息队列系统的介绍与使用
|
SQL 关系型数据库 MySQL
总结 vue3 的一些知识点:MySQL 连接的使用
总结 vue3 的一些知识点:MySQL 连接的使用
|
NoSQL 数据可视化 关系型数据库
推荐几个好用的redis可视化工具
推荐几个好用的redis可视化工具
17416 1
Ansible-playbook 并发运行async、poll(学习笔记二十二)
ansible默认只会创建5个进程,所以一次任务只能同时控制5台机器执行.那如果你有大量的机器需要控制,或者你希望减少进程数,那你可以采取异步执行.ansible的模块可以把task放进后台,然后轮询它.
4938 0
|
Java Shell 调度
ps -ef | grep java 输出的具体含义是什么?
uid        pid    ppid   # PID 这个程序的 ID 下面的 PPID 则是父程序的 ID;   PS是LINUX下最常用的也是非常强大的进程查看命令 常见的使用方法是检查一个进程是否存在: //以下这条命令是检查java 进程是否存在.ps -ef |grep java 1. ps简介 前面介绍的两个命令都是用于查看当前系统用户的情况,下面就来看看进程的情况,这也是本章的主题。
2629 0
|
7月前
|
监控 Java 关系型数据库
Spring Boot整合MySQL主从集群同步延迟解决方案
本文针对电商系统在Spring Boot+MyBatis架构下的典型问题(如大促时订单状态延迟、库存超卖误判及用户信息更新延迟)提出解决方案。核心内容包括动态数据源路由(强制读主库)、大事务拆分优化以及延迟感知补偿机制,配合MySQL参数调优和监控集成,有效将主从延迟控制在1秒内。实际测试表明,在10万QPS场景下,订单查询延迟显著降低,超卖误判率下降98%。
304 5
|
12月前
|
消息中间件
为什么选择轻量消息队列(原 MNS)作为云产品间的消息通道?
一张图带您快速了解为什么众多云产品间的消息通道选择轻量消息队列(原 MNS)🤔
174 84
|
SQL DataWorks Java
DataWorks操作报错合集之在阿里云 DataWorks 中,代码在开发测试阶段能够成功运行,但在提交后失败并报错“不支持https”如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
291 1
DataWorks操作报错合集之在阿里云 DataWorks 中,代码在开发测试阶段能够成功运行,但在提交后失败并报错“不支持https”如何解决