1

我有一个字符串(来自 irc 服务器的回答)。

从这个字符串我需要得到整数,来回答(PONG number_from_sv)

some txt PING :i_need_this_numbers some_text

如何在“PING:”附近获得这个数字,我不知道它有多长。我只知道,那是一个数字?

4

1 回答 1

1

使用 c++11 标准,您可以找到带有内置正则表达式的 ID。

一种可能的正则表达式是PING :(\\d+),其中 \d 掩盖了任意数字。+表示大于或等于 1(位数)。

查找 ID 的小脚本可能如下所示

#include <string>
#include <regex>
#include <iostream>    

using namespace std;



int main ()
{
    std::string s ("some txt PING :665454 some_text");
    std::smatch mt;
    std::regex r ("PING :(\\d+) ");

    if (std::regex_search ( s, mt, r))
    {
        smatch::iterator it = mt.begin()+1; // First match is entire s
        cout<<"Your ping ID is: "<<*it<<endl;
    }
    return 0;
}
于 2013-10-11T23:01:00.137 回答