c++ - 从字符串中提取数字 (Regex C++)

标签 c++ regex expression

假设我有一个字符串 S = "1 this is a number=200; Val+54 4class find57"

我想使用 Regex 只提取这个数字:

   num[1] = 1
   num[2] = 200
   num[3] = 54

而不是“4class”中的 4 或“find57”中的 57,这意味着只有被 Operatorsspace 包围的数字。 我试过这段代码但没有结果:

std::string str = "1 this is a number=200; Val+54 4class find57";
 boost::regex re("(\\s|\\-|\\*|\\+|\\/|\\=|\\;|\n|$)([0-9]+)(\\s|\\-|\\*|\\+|\\/|\\;|\n|$)");
 boost::sregex_iterator m1(str.begin(), str.end(), re);
 boost::sregex_iterator m2;
 for (; m1 != m2; ++m1) {

    advm1->Lines->Append((*m1)[1].str().c_str());

                        } 

顺便说一下,我正在使用 c++ Builder XE6。

最佳答案

只需使用单词边界。 \b 匹配单词字符和非单词字符。

\b\d+\b

\b[0-9]+\b

DEMO

必要时再转义一次反斜杠,如 \\b\\d+\\b\\b[0-9]+\\b

关于c++ - 从字符串中提取数字 (Regex C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27400131/

相关文章:

c++ - 如何使用 OpenCV 正确旋转不规则矩形?

c# - 动态构建选择子句linq

regex - 如果任何模式在给定序列中多次出现,如何使用正则表达式进行匹配

r - 使用 R 中的 gsub 部分替换字符串中的正则表达式模式?

python - 在字符串中查找子字符串旁边的所有分隔符并在 python 中替换

java - 排列操作数和运算符以获得数字

sql-server - SSIS 派生列表达式根据单独 OLE DB 源中另一个字段的值显示空白

c++ - Qt:使用uic生成ui_类,通过类名动态加载

C++ RAII - 我有这个权利吗?

c++ - IntelMPI 错误(适用于 openMPI)