草庐IT

regex-compat

全部标签

JavaScript Regex多次匹配新线

我仍然挣扎在JavaScript中学习围绕Regex的方式。我正在尝试创建一个将像以下转换的转换器:>thistextshouldbematched->thistextshouldbematched我已经失望了,但是我试图使它变得更加复杂,如下所示:>thisisamatch>soisthis,butshouldbeinthesamematchasabove>thisshouldbeaseperatematch>thisisnothing将等于:thisisamatchsoisthis,butshouldbeinthesamematchasabovethisshouldbeasepera

c++ - boost::regex 和 std::regex 之间的不一致

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Nomatcheswithc++11regex我之前使用boost::regex来处理一些东西,而对于一些我想使用std::regex的新东西,直到我注意到以下不一致-所以问题哪个是正确的?#include#include#include#includevoidtest(std::stringprefix,std::stringstr){std::stringpat=prefix+"\\.\\*.*?";std::cout对我来说(gcc4.7.2,-std=c++11,boost:1.51),我看到了以下内

c++ - 如何在 cpp 中使用 std::regex_replace() 函数查找和替换

我正在做一个项目,我需要找到以$开头并以>$结尾的单词,并将其替换为存储在变量中的单词。例子stringa="hello";stringb="Fellow$$,fullof$$people"std::cout$)\\b",a);//shouldprint"Fellowhello,fullofhellopeople"但似乎这是不可能直接实现的。我该如何解决这个问题? 最佳答案 除了两点,你的代码没有问题:正则表达式-你没有转义$这意味着字符串结束,\b$前后的单词边界这需要一个单词字符出现在$旁边符号。regex_replace没有签

C++ regex_match 不工作

这是我的部分代码boolCSettings::bParseLine(constchar*input){//_asmINT3std::stringline(input);std::size_tposition=std::string::npos,comment;regexcvarPattern("\\.([a-zA-Z_]+)");regexparentPattern("^([a-zA-Z0-9_]+)\\.");regexcvarValue("\\.[a-zA-Z0-9_]+[]*=[]*(\\d+\\.*\\d*)");std::cmatchmatchedParent,matched

c++ - 为什么我的 Boost.Regex 搜索只报告一次匹配迭代?

我试图找出一个字符串中有多少个正则表达式匹配项。我正在使用迭代器来迭代匹配项,并使用整数来记录有多少匹配项。longintbefore=GetTickCount();stringtext;boost::regexre("^(\\d{5})\\s(\\d{8})\\s(.*)\\s(.*)\\s(.*)\\s(\\d{8})\\s(.{1})$");char*buffer;longlength;longcount;ifstreamf;f.open("c:\\temp\\test.txt",ios::in|ios::ate);length=f.tellg();f.seekg(0,ios::

c++ - 为什么 regex_match 抛出 "complexity exception"?

我正在尝试测试(使用boost::regex)文件中的一行是否仅包含由空格分隔的数字条目。我遇到了一个我不明白的异常(见下文)。如果有人能解释为什么抛出它,那就太好了。也许我在这里以定义模式的方式做了一些愚蠢的事情?这是代码://regex_test.cpp#include#include#includeusingnamespacestd;usingnamespaceboost;intmain(){//Mybasicpatterntotestforasinglenumericexpressionconststringnumeric_value_pattern="(?:-|\\+)?[[

c++ - 为什么 Boost.Regex 不能在一个字符串中找到多个匹配项?

我正在编写一个小的命令行程序,它要求用户以ax^2+bx^1+cx^0的形式提供多项式。我稍后会解析数据,但现在我只是想看看我是否可以将多项式与正则表达式匹配(\+|-|^)(\d*)x\^([0-9*]*)我的问题是,它不匹配用户输入的多项式中的多个项,除非我将其更改为((\+|-|^)(\d*)x\^([0-9*]*))*(不同之处在于整个表达式被分组并且末尾有一个星号)。如果我键入诸如“4x^2”而不是“4x^2+3x^1+2x^0”之类的内容,则第一个表达式有效,因为它不多次检查。我的问题是,为什么Boost.Regex的regex_match()不能在同一个字符串中找到多个匹

c++ - 如何迭代 std::string 中的所有正则表达式匹配及其在 c++11 std::regex 中的起始位置?

我知道两种从std::string获取正则表达式匹配的方法,但我不知道如何获取所有匹配及其各自的偏移量。#include#include#includeintmain(){usingnamespacestd;strings="123apples456oranges789bananasorangesbananas";regexr=regex("[a-z]+");constsregex_token_iteratorend;//hereIknowhowtogetalloccurences//butdon'tknowhowtogetstartingoffsetofeachonefor(sreg

c++ - regex_replace,为什么它会丢失 $1?

strings="'I'dgo.'";s=std::regex_replace(s,std::regex("((^|)')|('($|))"),"$1(Quotation,)");cout我想用(Quotation,)替换',我不想丢失原来的'。所以,我使用$1来表示原始的'。而且我不想替换I'd的'。^表示如果'位于字符串的开头,它将被替换。$表示字符串结束结果应该是:'(Quotation,)I'dgo.'(Quotation,)但实际上结果是'(Quotation,)I'dgo.(Quotation,)左侧引号替换工作正常,但右侧丢失了'。为什么? 最

c++ - 如何在 C++ 中使用 Boost::regex.hpp 库?

我尝试使用Boost库但失败了,请查看我的代码:#include"listy.h"#includeusingnamespaceboost;ListyCheck::ListyCheck(){}ListyCheck::~ListyCheck(){}boolListyCheck::isValidItem(std::string&__item){regexe("(\\d{4}[-]){3}\\d{4}");returnregex_match(__item,e);}当我尝试编译它时,我得到了这些消息:/usr/include/boost/regex/v4/regex_match.hpp:50:u