草庐IT

menta-regex

全部标签

c++ - 您可以使用 Boost.Regex 来解析流吗?

我正在尝试使用Boost.Regex来解析字符串中的单词和数字。这是我目前所拥有的:#include#include#include#include#includeusingnamespacestd;usingnamespaceboost;intmain(){regexre("(""([a-z]+)|""(-?[0-9]+(\\.[0-9]+)?)"")");strings="hereisa\tlistofWords.andsome1239.32numbersto3323parse.";sregex_iteratorm1(s.begin(),s.end(),re),m2;BOOST_F

c++ - 如何循环 std::regex_search 的结果?

调用std::regex_search后,出于某种原因,我只能从std::smatch获取第一个字符串结果:Expression.assign("rel=\"nofollow\">(.*?)");if(std::regex_search(Tables,Match,Expression)){for(std::size_ti=1;i所以我尝试用另一种方式-使用迭代器:conststd::sregex_token_iteratorEnd;Expression.assign("rel=\"nofollow\">(.*?)");for(std::sregex_token_iteratori(Ta

c++ - std::regex 是否支持 "(?i)"不区分大小写?

我正在使用VisualStudio2010。这...std::regexpattern("(?i).*a.*");...抛出这个...std::tr1::regex_error-正则表达式错误...而且我找不到任何说明std::regex是否支持(?i)不区分大小写的语法。谁能确认/否认std::regex不支持将(?i)作为不区分大小写的前缀? 最佳答案 该标准仅要求符合POSIX正则表达式语法(不包括像这样的Perl扩展)和符合ECMAScript正则表达式规范(除了少数异常(exception),根据ISO14882-2011

c++ - 如何使用新的 c++0x regex 对象在字符串中重复匹配?

我有一个字符串:"hello1,hello2,hello17,anddone!"我想对它重复应用这个正则表达式:hello([0-9]+)并且能够以某种方式遍历匹配项及其捕获组。我已经在c++0x中成功地使用了“正则表达式”来找到字符串中某物的第一个匹配项并检查捕获组的内容;但是,在找到所有匹配项之前,我不确定如何在字符串上多次执行此操作。帮助!(平台是visualstudio2010,以防万一。) 最佳答案 不要使用regex_match,使用regex_search。您可以在此处找到示例:http://www.codeguru.

c++ - regex_token_iterator 和 regex_iterator 有什么区别?

regex_token_iterator和regex_iterator有区别吗?看起来他们都做同样的工作,但不确定哪一个性能更好? 最佳答案 两者之间确实存在差异,如果我们查看cppreference,它描述了std::regex_iterator如下:std::regex_iteratorisaread-onlyForwardIteratorthataccessestheindividualmatchesofaregularexpressionwithintheunderlyingcharactersequence.和std::r

regex - 删除文件每行末尾的制表符

要删除文本文件每行末尾的制表符,我会这样做findstr/r/v/c:"[]$""~1">result.txt但是选项卡还在。文件示例JohnDoeBobMaterson..........在JohnDoe、BobMaterson等之后,它可能有一些标签。我想消除它们,以便我的输出文件(“result.txt”)不再有它们。在线搜索后,我发现可以使用“sed”命令来执行它,但我不想在PC上安装它。所以如果有没有用到的解决方案,真的很感谢大家的期待。 最佳答案 当我遇到类似的问题时,我使用了more命令,它类似于type命令,只是带有

regex - 从 perl 5.8(32 位)升级到 5.16(64 位)- 正则表达式性能受到影响

我正在针对数据block运行一系列正则表达式。我们最近从Activestateperl5.832位(我知道……非常老!)升级到perl5.1664位。所有硬件都保持不变(Windows)。我们注意到性能受到影响,之前我们的解析循环大约需要2.5秒,现在大约需要5秒。谁能给我一个提示,说明是什么导致了这种变化?我期待性能的提高,因为我的理解是引擎已经有了很大的改进,任何关于我应该做的不同的文档都将不胜感激。 最佳答案 是的,正则表达式引擎在v8之后有了很大的改进。单独在v10中,我们看到:模式递归命名捕获所有格量词回溯控制动词,如(*

regex - Windows 批处理 : How remove all blank (or empty) lines

我正在尝试使用Windows批处理程序从文本文件中删除所有空行。我知道实现此目的的最简单方法是bash是通过正则表达式和sed命令:sed-i"/^$/d"test.txt问题:Windows批处理是否有类似的简单方法来从文本文件中删除所有行?否则,实现此目标的最简单方法是什么?注意:我正在运行这个批处理脚本来设置新的Windows计算机供客户使用,因此最好不需要安装(然后卸载)其他程序来实现此目的-理想情况下,我将只使用“标准”批处理库。 最佳答案 对于/f不处理空行:for/f"usebackqtokens=*delims="%

regex - 在 FINDSTR 中使用子模式

我必须检查存储在变量中的字符串的有效性,我不能使用外部CLI实用程序(grep、awk等)所以我选择了FINDSTR。该字符串具有以下格式(在正则表达式中):([1-9][0-9]*:".*"(|".*")*)我不知道如何检查子模式(|。“*”)。目前我的代码是:((ECHO.)|(SET/P"=(11:"a"|"b"|"c")")|(FINDSTR/R/C:"^([1-9][0-9]*:".*")$"))问候。 最佳答案 MatM关于FINDSTR的限制是正确的。FINDSTR正则表达式支持非常原始且非标准。输入HELPFINDS

regex - batch regex 将 reg query 命令的输出输出到一个变量

总结我需要能够找到注册表项的DWORD值并为其设置一个变量以针对它运行if语句。我怎样才能只获取reg查询的双字,以便我可以在我的脚本的其余部分中使用它?正则查询regqueryHKLM\System\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile/vEnableFirewall请求查询输出EnableFirewallREG_DWORD0x1我需要抓取什么0x1伪代码queryfirewallregvalueregexoutDWORDvalueandsettovariab