草庐IT

regex_iterator

全部标签

REGEX-选择包含textcrawler中一个单词的整个文件

我需要选择并删除包含单词“my_word”的所有内容的所有内容。blahblaghtataMY_WORDpppmotherid787我尝试这个正则(?s)(.*?MY_WORD).*$或者[^"]+(MY_WORD)[^"]+在记事本++中工作,但不起作用TextCrawler.看答案您可以尝试这种方法:.*MY_WORD.*而且还需要查看“点匹配newline”。

.NET REGEX连续5个以上的字母字母

我试图为连续5个以上的字母字母编写.NETREGEX。dfhjvudyfyreaaaaa-不允许dfhjvudyfyreaaaaa-不允许DFHJVAAAAAFYREAAA-不允许dfhjvaaafyresdaaa-允许dfhjvaaaf3434yresda-允许到目前为止,我已经尝试了一些REGexp,但没有根据我的要求工作。我的要求在下面弦长应小于25个字符字符串仅是字母/数字的组合,不允许特殊字符。尝试了解决方案^(?=。{1,25}$)(([A-ZA-Z0-9])\5?(?!\5))+$(?i)(。)\1\1我将使用字符串表示车辆发动机号或底盘号。我很oke,如果有可能在JavaScr

c++ - move_iterator 对于返回纯右值的迭代器被破坏并返回悬空引用

我查看了std::move_iterator的STL源代码并发现它返回Iterator::value_type&&.当Iterator::reference时,这会导致不正确的行为是右值,与Iterator::value_type&不同.我有一个带有代理对象的类reference(如std::vector),它可以隐式转换为value_type.普通迭代器只是取消对这个代理的引用(输入迭代器要求允许这样做),但是std::move_iterator调用转换为value_type带有开销,然后返回对创建的临时对象的悬空引用。std::move_iterator仍然适用于std::vect

c++ - m.find(...) == m.end() - 使用的是 iterator 或 const_iterator

std::mapfind/end都提供const_iterator和迭代器,例如iteratorend();const_iteratorend()const出于好奇,如果我有一个std::map,它将在这里被调用/比较,一个迭代器或一个const_iterator?:if(m.find(key)!=m.end()){...}我应该关心吗? 最佳答案 如果m是const,则返回一个const_iterator;否则将返回一个迭代器。如果您所做的只是测试map中是否存在某个元素,那么使用哪个元素并不重要。

c++ - iterator 和 const_iterator (STL) 效率不同

在Qt中有类似的类来列出map。这些类提供了一个返回const_iterator的begin_const()方法。文档说应尽可能使用这些const_iterators,因为它们速度更快。如果实例本身是const,STL只会给你一个const_iterator。只实现了一个begin()方法(为const重载)。使用iterator和const_iterator读取访问元素时有什么区别吗?(我不知道为什么它们在Qt中有区别) 最佳答案 Thedocumentationsaysthattheseconst_iteratorsshould

c++ - 如何使用 regex_replace?

在askingthisquestiononSO之后,我意识到我需要用另一个字符串替换一个字符串中的所有匹配项。在我的例子中,我想用`\s*'替换所有出现的空格(即任何数量的空格都将匹配)。所以我设计了以下内容:#include#includeintmain(){conststd::stringsomeString="hereissometext";conststd::stringoutput=std::regex_replace(someString.c_str(),std::regex("\\s+"),"\\s*");}此操作失败,输出如下:error:nomatchingfunct

c++ - std::regex 等效于 '/g' 全局修饰符

在Perl中,我可以这样做:$text='1747239';@matches=($text=~m/(\d)/g);#@matchesnowcontains('1','7','4','7','2','3','9')使用C++正则表达式匹配,复制此行为的最佳方法是什么我得到一个包含所有匹配项的匹配集?我现在有这个:-compiledRegex=std::regex(regex,std::tr1::regex_constants::extended);regex_search(text,results,compiledRegex);intcount=results.size();//Allo

c++ - 在自定义迭代器上应用 reverse_iterator 后引用失效

我实现了一个双向迭代器,但它不是对数据结构进行操作,而是返回一个可以在两个方向上迭代计算的数学序列。事实上,我正在迭代整数,使用++和--在int上。这意味着数据不会存储在不同的结构中,因此当迭代器超出范围时,值也会超出范围。尽管如此,我希望下一个代码(最小失败示例)示例能够工作,因为迭代器始终保持在范围内。但它不起作用:(#include#include#includeclassmy_iterator:publicstd::iterator{intd_val=12;public:my_iteratoroperator--(int){std::cout();int&i=*it;if(t

c++ - 从 back_insert_iterator 中提取容器的 value_type 的特征类

std::back_insert_iterator的value_type等于void,但它还有一个protected成员container包含指向底层Container的指针。我正在尝试编写一个traits类来提取容器的value_type,如下所示:#include#include#includetemplatestructoutit_vt:OutputIt{usingself_type=outit_vt;usingvalue_type=typenamestd::remove_pointer_t().container)>::value_type;};intmain(){std::v

c++ - Clang 与 gcc std::crbegin with boost::iterator_range

使用libc++的Clang3.8.1编译以下程序:#include#include#include#include#includeintmain(){conststd::vectorv{1,2,3};constautorange=boost::make_iterator_range(v);std::copy(std::crbegin(range),std::crend(range),std::ostream_iterator{std::cout,""});std::cout但是带有libstdc++的gcc6.1.0没有。gcc错误的第一行是:error:nomatchingfunc