Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 如何使用c+中的正则表达式打印字符串中的三位数+;?_Regex_String - Fatal编程技术网

Regex 如何使用c+中的正则表达式打印字符串中的三位数+;?

Regex 如何使用c+中的正则表达式打印字符串中的三位数+;?,regex,string,Regex,String,示例输入 abc55def789KK23GOOD9999910ONEM109ORE19k6 abcdef 输出 789 109 示例输入 abc55def789KK23GOOD9999910ONEM109ORE19k6 abcdef 输出 -1 这是我需要通过正则表达式代码实现的 我已经浏览了很多网站上的教程,但无法根据需要解读 我的想法是使用这个正则表达式 rx("[0-9][0-9][0-9]""\\-""[0-5][0-5]") 但是我无法理解smatch标志以及如何检索结

示例输入

abc55def789KK23GOOD9999910ONEM109ORE19k6
abcdef
输出

789 109 
示例输入

abc55def789KK23GOOD9999910ONEM109ORE19k6
abcdef
输出

-1
这是我需要通过正则表达式代码实现的

我已经浏览了很多网站上的教程,但无法根据需要解读

我的想法是使用这个正则表达式

rx("[0-9][0-9][0-9]""\\-""[0-5][0-5]")
但是我无法理解
smatch
标志以及如何检索结果

下面是一个示例,显示如何提取不包含其他数字的3位数块:

#include <string>
#include <iostream>
#include <regex>
using namespace std;

int main() {
    std::regex r(R"((?:^|\D)(\d{3})(?!\d))");
    std::string s = "abc55def789KK23GOOD9999910ONEM109ORE19k6"; // "abcsd"; => Not Found
    if (regex_search(s, r)) {
        for(std::sregex_iterator i = std::sregex_iterator(s.begin(), s.end(), r);
                                 i != std::sregex_iterator();
                                 ++i)
        {
            std::smatch m = *i;
            std::cout << m[1].str() << '\n';
        }
    } else {
        std::cout << "Not found" << '\n';
    }
    return 0;
}
#包括
#包括
#包括
使用名称空间std;
int main(){
正则表达式r(r)((?:^|\D)(\D{3})(?!\D))”;
std::string s=“abc55def789kkk23good99910onem109ore19k6”/“abcsd”=>未找到
if(正则表达式搜索(s,r)){
for(std::sregx_迭代器i=std::sregx_迭代器(s.begin(),s.end(),r);
i!=std::sregex_迭代器();
++(一)
{
std::smatch m=*i;
std::cout Try
rx(R)((?:^\D)(\D{3})(?!\D))”