1. 程式人生 > 其它 >直播帶貨app原始碼,實現文字替換

直播帶貨app原始碼,實現文字替換

技術標籤:技術類python正則表示式c++字串unity

直播帶貨app原始碼,實現文字替換相關的程式碼

#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`[email protected]#%&-_=:|}].;\"'<>/\\\\\\\\<>. \\$^*()+{}[]|?`, /[email protected]#%&-_=:;\"'<>."; 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; }

以上就是直播帶貨app原始碼,實現文字替換相關的程式碼, 更多內容歡迎關注之後的文章