草庐IT

menta-regex

全部标签

java - 在 Android 中使用 RegEx 拆分字符串

我一直在尝试使用RegEx拆分Strings但没有成功。这个想法是以某种方式从文件名中拆分给定的音乐文件元数据,以便:"01.Kodaline-Autopilot.mp3"..会导致..metadata[0]="01"metadata[1]="Kodaline"metadata[2]="Autopilot"这是我一直在尝试以其原始形式使用的RegEx:^(.*)\.(.*)\-(.*)\.(mp3|flac)根据我的阅读,我需要格式化RegEx才能使String.split(Stringregex)正常工作。所以这是我格式化的正则表达式:^(.*)\\.(.*)\\-(.*)\\.(m

c++ - boost::regex_replace 中两个参数格式函数的问题

我在boost::regex_replace中遇到格式函数问题。我可以调用它的一个参数版本,但不能调用它的两个参数:e="(^|>)([^]+)";h_str=regex_replace(h_str,e,repl_quot,boost::match_default);其中repl_quot定义为std::stringconst&repl_quot(boost::smatchconst&what){boost::regexe("\"");std::stringrepl(""");staticstd::string;str=regex_replace(what[0].str(),e

c++ - regex_token_iterator *it++ 错误?

对于以下代码:#include#includeusingnamespacestd;intmain(intargc,char*argv[]){regexreg("/");strings="Split/Values/Separated/By/Slashes";sregex_token_iteratorit{std::begin(s),std::end(s),reg,-1};sregex_token_iteratorend;while(it!=end){cout应该输出:SplitValuesSeparatedBySlashes但是它输出这个:ValuesSeparatedBySlashes

c++ - std::regex_constants::optimize 使用的优化技术

我正在使用std::regex,在阅读std::regex_constants中定义的各种常量时,我​​遇到了std::optimize,阅读它,听起来它在我的应用程序中很有用(我只需要一个正则表达式实例,在开始时初始化,但在整个加载过程中多次使用它)。根据workingpapern3126(第1077页),std::regex_constants::optimize:Specifiesthattheregularexpressionengineshouldpaymoreattentiontothespeedwithwhichregularexpressionsarematched,a

c++ - 为什么 std::regex_iterator 会导致此数据的堆栈溢出?

我一直在使用std::regex_iterator来解析日志文件。我的程序已经运行了几个星期并且已经解析了数百万行日志,直到今天,当今天我针对日志文件运行它并出现堆栈溢出时。事实证明,只有日志文件中的一个日志行导致了问题。有谁知道为什么我的正则表达式会导致如此大规模的递归?这是一个显示问题的独立小程序(我的编译器是VC2012):#include#include#includeusingnamespacestd;std::wstringtest=L"L3T1535679726859[CreateRegistryAction]CreatingREGISTRYAction:\n"L"Ide

c++ - boost::regex vs std::regex - 找不到 empty() 方法?

将boost::regex替换为std::regex因为我们在公司使用gcc4.6我遇到了一个问题empty()该类的方法-它基本上没有从boost::regex进入std::regex类。我不确定这是gcc的问题还是这个方法根本没有进入C++11标准,但那段代码在很大程度上取决于这个特性。所以问题是-在C++11std::regex中是否有一种方法来检查是否设置了表达式,或者我应该坚持使用boost::regex我的余生? 最佳答案 empty()很久以前就从std::regex中删除了。N1507(2003-09-16)是建议将

c++ - boost::regex_search 可以在 wstring 上完成吗?

这是我尝试过的:std::wstringextractText(std::wstringline){std::wstringtext;boost::regexexp("^.*?PRIVMSG#.*?:(.+)");boost::smatchmatch;if(boost::regex_search(line,match,exp)){text=std::wstring(match[1].first,match[1].second);}returntext;} 最佳答案 使用wregex和wsmatch

c++ - fatal error LNK1104 : cannot open file 'libboost_regex-vc90-mt-gd-1_42.lib'

我正在尝试在我的程序中使用boost正则表达式问题是我得到这个错误......我所做的唯一安装步骤是添加:“C:\ProgramFiles\boost\boost_1_42”进入附加包含目录...我正在使用VS2008...尝试实现这个:#include#include#includeusingnamespacestd;intmain(){std::strings,sre;boost::regexre;boost::cmatchmatches;while(true){cout>sre;if(sre=="quit"){break;}cout>s;try{//Assignmentandco

c++ - 转义字符串常量以嵌入 std::regex

C++11有6种不同的正则表达式语法供您使用。就我而言,我正在与使用修改后的ECMAScript正则表达式的组件进行交互。我需要创建一个正则表达式“匹配以X开头的字符串”,其中X是我拥有的字符串文字。所以我要的正则表达式大概是^X.*。除了字符串X可以包含更多正则表达式特殊字符,我希望它们出现。这意味着我真的想要^escaped(X).*.现在,我可以阅读ECMAScript文档,找到所有具有特殊含义的字符,编写一个转义它们的函数,然后完成。但这似乎不够优雅、低效且容易出错——尤其是如果我想支持C++目前支持的所有6种正则表达式,更不用说将来了。标准中是否有一种简单的方法来转义文字字符

c++ - 为什么这个 C++11 std::regex 示例抛出 regex_error 异常?

这个问题在这里已经有了答案:Isgcc4.8orearlierbuggyaboutregularexpressions?(3个答案)关闭9年前。尝试学习如何在C++11中使用新的std::regex。但是我尝试的示例抛出了一个我不理解的regex_error异常。这是我的示例代码:#include#includeintmain(){std::stringstr="xyzabc1xyzabc2xyzabc3abc4xyz";std::regexre("(abc[1234])");//我这样编译运行:g++-g-std=c++11test.cpp./a.outterminatecalled