Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.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
C++ 在字符串中的行中搜索大于0的数字_C++_Regex_String - Fatal编程技术网

C++ 在字符串中的行中搜索大于0的数字

C++ 在字符串中的行中搜索大于0的数字,c++,regex,string,C++,Regex,String,我有一个std::string,带有这样的文本 name0 0x3f700000 0x160000 1 0 或 等等 我想知道的是,这行的最后一个数字是否大于0,前面的数字是否为1 我这样做了,但它不起作用,它总是返回一个匹配 std::regex_search(buffer, match, std::regex(std::string("(^|\n)") + m_name + " [0-9a-fA-Fx]* [0-9a-fA-Fx]* 1 [1-9a-fA-Fx]*")); 你能说出错

我有一个std::string,带有这样的文本

name0 0x3f700000 0x160000 1 0

等等

我想知道的是,这行的最后一个数字是否大于0,前面的数字是否为1

我这样做了,但它不起作用,它总是返回一个匹配

std::regex_search(buffer, match, std::regex(std::string("(^|\n)") +  
m_name + " [0-9a-fA-Fx]* [0-9a-fA-Fx]* 1 [1-9a-fA-Fx]*"));
你能说出错误在哪里吗?它似乎知道前一个数字何时为1,但最后一个数字似乎出错了。

您可以使用

[1-9][0-9]*$ 
检查数字是否大于
0

它的作用是什么?

  • [1-9]
    1
    9
    匹配

  • [0-9]*
    匹配零位或多位数字

  • $
    匹配字符串的结尾

完整的正则表达式可以是

name0 [0-9a-fA-Fx]* [0-9a-fA-Fx]* 1 [1-9][0-9]*$
您可以使用

[1-9][0-9]*$ 
检查数字是否大于
0

它的作用是什么?

  • [1-9]
    1
    9
    匹配

  • [0-9]*
    匹配零位或多位数字

  • $
    匹配字符串的结尾

完整的正则表达式可以是

name0 [0-9a-fA-Fx]* [0-9a-fA-Fx]* 1 [1-9][0-9]*$
您可以使用这个正则表达式

1\s+[1-9]\d*$

或者更具体地说

^name\d+\s+0x[0-9a-f]+\s+0x[0-9a-f]+\s+1\s+[1-9]\d*$

您可以使用此正则表达式

1\s+[1-9]\d*$

或者更具体地说

^name\d+\s+0x[0-9a-f]+\s+0x[0-9a-f]+\s+1\s+[1-9]\d*$

数字后面是否可以有文本,如
名称0 0x3F7700000 0x160000 1 0 abcd
?否,数字后面是否可以有文本,如
名称0 0x3F7700000 0x160000 1 0 abcd
?否,数字后面没有文本