草庐IT

regex-group

全部标签

c++ - 如何获得 std::regex 的所有可能匹配项

我想找到正则表达式的所有可能匹配项,这怎么可能?regexrx("(2|25)");strings="2225";for(sregex_iteratorit(s.begin(),s.end(),rx),end;it!=end;++it){coutposition()str()给出输出:0:21:22:25但找不到第三个2:2。我更喜欢使用正则表达式,因为O(n)同时搜索多个标记的复杂性。更新:也许将标记列表拆分为不可前缀的列表并创建多个正则表达式?例如:(2|4|25|45|251|455|267)=>(2|4),(25|45|267),(251|455)这会增加复杂度,比如O(nlo

c++11/regex - 搜索精确的字符串,转义

这个问题在这里已经有了答案:std::regexescapespecialcharactersforuseinregex(3个答案)关闭6年前。假设您有一个由用户提供的字符串。它可以包含任何类型的字符。例子是:std::strings1{"helloworld");std::strings1{".*");std::strings1{"*{}97(}{.}}\\testing___justa--%#$%#literal%$#%^"};...现在我想在一些文本中搜索>>的出现后跟输入字符串s1其次是.为此,我有以下代码:std::stringinput;//theinputtextstd:

c++ - 如何使用 C++ Boost 的 regex_iterator()

我正在使用Boost来匹配字符串中的子字符串。Io遍历结果,我需要使用regex_iterator().那是我找到的唯一用法示例,但我不理解回调。有人可以给我一个函数的用法示例吗?让我们假设我的输入文本是:"HelloeverybodythisisasentenseBlabla14..yesdate04/15/1986"我想得到:"Hello""everybody""this""is""a""sentense""bla""yes""date" 最佳答案 如果您不理解示例的唯一部分是回调,请考虑:std::for_each(m1,m2

c++ - boost::thread 在终止时会自动从 boost::thread_group 中删除吗?

(Thisquestion,虽然相似,但并没有真正回答我的问题。)我有problemswithmyown"threadgroup"implementation,并且没有更接近于解决甚至识别问题,我正在研究仅使用boost::thread_grp。现在,从什么documentationIcanfindonthesubject1,我一直相信线程对象——无论它们实际工作的持续时间如何——一直存在并且是线程组的一部分,直到线程组被销毁。但是,粗略的测试似乎表明boost::thread_group::size()会随着线程的工作和终止而自行减少。这意味着线程对象本身也正在为我清理。这是真的吗?

【sql】mysql分组查询group by的案例和原理

【sql】mysql分组查询groupby的案例和原理【一】groupby的使用场景【二】groupby的基本语法【1】基本语法【2】常用的聚合函数(1)max函数:取出分组中的最大值(2)avg函数:取出分组中的平均值(3)count函数:统计每个分组中的数据有多少条(4)sum函数:取出分组结果中的总和(5)min函数:取出分组中的最小值(6)GROUP_CONCAT函数:把分组中的值拼接在一起(可以先排序再拼接)【3】条件where和having的区别(1)案例一:where过滤(2)案例二:having过滤(3)案例三:where+having(4)案例四:按表达式或函数进行筛选(5)

C++ std::regex 正则表达式查找多个匹配项

我正在尝试用C++解析证书,并认为这是学习Regex的好机会。我大约一个小时前才了解正则表达式,所以请原谅我缺乏知识。我正在寻找与条目关联的所有OU。我正在做以下事情:std::smatchOuMatches;std::stringmyCertSubject="O=\"MyCompany,Incorporated\",OU=TechnicianLevel-A3,OU=AccessLevel-1,CN=\"Name,My\",E=namem@company.com";std::regexsubjectRx("OU=[[:w:]|[:s:]|[:digit:]|-]*",std::rege

c++ - std::regex 构造函数抛出异常

请注意,这不是StackOverflow上有关gcc的许多问题的重复,我使用的是VisualStudio2013。这个正则表达式的简单构造会抛出std::regex_error:boolcaseInsensitive=true;charpattern[]="\\bword\\b";std::regexre(pattern,std::regex_constants::ECMAScript|(caseInsensitive?std::regex_constants::icase:0));what在异常对象上返回的实际错误是不一致的。通常它是不匹配的括号或括号。为什么?

c++ - 如何将函数参数传递给 boost::thread_groups::create_thread()

我是Boost.Threads的新手,正在尝试了解如何将函数参数传递给boost::thread_groups::create_thread()函数。在阅读了一些教程和boost文档之后,我了解到可以简单地将参数传递给该函数,但我无法使该方法起作用。我读到的另一种方法是使用仿函数将参​​数绑定(bind)到我的函数,但这会创建参数的拷贝,我严格要求传递const引用,因为参数将是大矩阵(我打算这样做通过使用boost::cref(Matrix)一旦我得到这个简单的例子。现在,让我们开始讨论代码:voidprintPower(floatb,floate){cout这不会编译并出现以下错误

REGEX,R和逗号

我在R中的正则弦线遇到了一些麻烦。str所以两个问题-为什么我的第一个想法不起作用,为什么第二次捕获在字符串结束之前,而不仅仅是第一个逗号?谢谢!看答案注意stringr正则风味是ICU。与tre不同,.不匹配ICURegex模式中的线路断裂。因此,可能的解决方法是使用(?s)-一种制造的dotall修饰符.匹配任何包括线路断路字符的字符-在您的模式开始时:str_match(str,"(?s)tags:(.+)\\d")和str_match(str,"(?s)tags:\n(.+)")但是,我觉得您需要在下面获取所有字符串tags:作为单独的匹配。我建议使用基础rregmatches/gre

c++ - 如何处理或避免 C++11 <regex> 匹配函数的异常(§28.11)?

从C++11开始header定义函数std::regex_match,std::regex_search和std::regex_replace在§28.11.我想这些函数不是noexcept是有正当理由的,但我找不到任何关于这些可能抛出的内容或原因的引用。这些函数可能抛出什么类型的异常?哪些运行时条件会导致抛出这些异常?标准是否确保这些函数永远不会抛出某些参数集,例如它是否确保regex_match(anyString,regex("."))从不抛出?PS:由于其中一些异常可能继承自std::runtime_error,他们mightthrowstd::bad_allocduringt