`
7090
  • 浏览: 280290 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

C++正则表达式匹配、分割字符串

 
阅读更多
#include "stdafx.h"
#include <iostream>
#include <regex>
#include <string>

using namespace std;

int main()
{

std::string s("abcd12_efgh34");
std::regex e("abcd(\\d+)_efgh(\\d+)");
std::smatch sMatchResult;

if (std::regex_match(s, sMatchResult, e))
{
std::cout << "string Match:" << sMatchResult.size() << "\n";

for (size_t i = 0; i < sMatchResult.size(); ++i)
{
cout << sMatchResult[i] << " ";
}
}
cout << "\n";

std::cmatch cMatchResult;    // same as std::match_results<const char*> cm;
if (std::regex_match(s.c_str(), cMatchResult, e))
{
std::cout << "char* Match:" << cMatchResult.size() << "\n";

for (size_t i = 0; i < cMatchResult.size(); ++i)
{
cout << cMatchResult[i] << " ";
}
}

getchar();

std::cout << std::endl;
}


参考:http://www.cplusplus.com/reference/regex/regex_match/
分享到:
评论

相关推荐

    C++ 正则表达式匹配工具源码

    在C++编程中,正则表达式是一种强大的文本处理工具,它允许程序员通过模式匹配来查找、替换或分割字符串。正则表达式引擎通常被封装在标准库中,C++11及其后续版本引入了`&lt;regex&gt;`库,使得开发者可以直接在C++中使用...

    C++ 正则表达式 使用手册 源代码

    前者返回完整的匹配,后者可以分割字符串并返回单独的匹配部分。 6. **替换操作** - `std::regex_replace()` 函数允许你将字符串中符合正则表达式的部分替换为新的字符串,这对于字符串的格式化和清理非常有用。 ...

    c++正则表达式用法及示例

    正则表达式是一种模式匹配工具,能够快速有效地查找、替换或分割字符串。在C++中,理解并熟练运用正则表达式可以极大地提高文本处理的效率和灵活性。 1. **基础概念** - **模式**:正则表达式就是一个模式,用于...

    C++ 使用正则表达式demo

    在C++编程中,正则表达式是一种强大的文本处理工具,它允许我们通过模式匹配来查找、替换或分割字符串。在Visual Studio 2008(VS2008)这个IDE环境下,C++并不直接支持标准库中的正则表达式,但可以通过引入外部库...

    C/C++正则表达式boost_1_34_1源码

    总的来说,"C/C++正则表达式boost_1_34_1源码"是一个宝贵的学习资源,它不仅提供了强大的文本处理工具,还展示了高级C++编程技巧和设计模式。对于想要提升C++编程技能,尤其是对正则表达式感兴趣的开发者来说,这是...

    VC、VC++,MFC 正则表达式类库

    这个库通常包含一系列的类和函数,允许程序员编写符合特定模式的字符串匹配、替换和分割等操作。在标准C++库中,虽然没有内置的正则表达式支持,但通过包含如 Boost 或 TR1(Technical Report 1)扩展,或者在较新的...

    c++用的正则表达式包

    使用这个库,你可以编写复杂的模式来搜索、替换或者分割字符串,这在处理文本数据时非常有用。下面我们将深入探讨几个关键知识点: 1. **正则表达式对象**:在C++中,你可以通过`boost::regex`创建一个正则表达式...

    boost库中的正则表达式

    5. **匹配结果**:`match_results`类用于存储正则表达式匹配的结果,包括匹配的子串、开始和结束位置等信息。匹配结果可以通过`regex_match`和`regex_search`的第二个参数传递,并在匹配成功后访问。 6. **匹配标志...

    c++利用deelx实现正则表达式

    Deelx是一个轻量级且高效的C++正则表达式库,它为C++程序员提供了丰富的正则表达式功能。 Deelx库的设计目标是提供与Perl和PCRE(Perl Compatible Regular Expressions)兼容的正则表达式引擎,它支持多种正则...

    正则表达式详细介绍

    正则表达式是一种强大的文本匹配工具,它能够用来检查、分割、替换字符串,并在很多编程语言和工具中得以应用。正则表达式通常使用简短的字符串来定义复杂的搜索模式,这些模式可以包含普通字符、特殊字符和元字符。...

    正则表达式的一个Demo

    它通过一种简洁而强大的语法来定义一系列字符或字符序列,可以用来检测一个字符串是否符合特定规则,或者从中提取、替换或分割字符串。 在编程语言中,正则表达式通常作为内置的库或函数提供,支持多种操作,例如...

    C++Regex正则表达式

    C++中的正则表达式(Regex)是一种强大的文本处理工具,它允许程序员通过模式匹配来搜索、替换或分割字符串。正则表达式在C++中是通过标准库 `&lt;regex&gt;` 提供的,这个库提供了丰富的功能,使得处理复杂的文本模式变得...

    Greta正则表达式

    Greta正则表达式是一种专为编程开发设计的文本匹配工具,它允许程序员通过特定的模式来搜索、替换或分析字符串。在给定的上下文中,"Greta正则表达式"显然指的是一个实现了正则表达式的库或框架,特别适用于Visual ...

    cpp-RE2一个正则表达式的软件库通过一个有限状态机使用自动机理论实现

    总的来说,RE2是一个强大而可靠的正则表达式库,它通过自动机理论实现了高效和安全的正则表达式匹配。对于需要在C++项目中使用正则表达式,并重视性能和安全性的开发者来说,RE2是一个理想的工具。通过深入理解...

    Boost学习之正则表达式

    - **`regex_search` 函数**:用于查找目标字符串中与正则表达式匹配的第一个子串。 - **`regex_replace` 函数**:用于替换目标字符串中所有与正则表达式匹配的子串。 - **`regex_format` 函数**:此函数已不再推荐...

    ff.rar_Boost_正则表达式

    正则表达式是一种用于匹配字符串的强大工具,它通过定义一种模式来查找、替换或分割文本。在Boost库中,正则表达式是通过`boost::regex`类实现的。使用这个类,我们可以创建正则表达式对象,并使用它来进行匹配、...

    Boost学习之正则表达式.doc

    5. **regex_grep** 和 **regex_split**:这两个函数分别用于查找匹配正则表达式的行和分割字符串。然而,由于它们的功能在C++11标准库的`std::regex`中已有更好的实现,所以在新的代码中通常不推荐使用。 6. **...

    Boost库学习之正则表达式

    6. `regex_split`:根据正则表达式分割字符串。 7. `RegEx`类:正则表达式对象,用于执行匹配和搜索操作。 虽然`regex_format`、`regex_grep`和`regex_split`在某些版本中不再推荐使用,但它们仍然可用,只是可能有...

    C++分割字符串算法

    总的来说,C++提供了多种方法来分割字符串,包括基础的字符分隔和更复杂的正则表达式匹配。开发者可以根据项目需求选择合适的方法,并选择适当的容器存储结果。理解这些工具的用法和性能特性对于优化代码和提高效率...

Global site tag (gtag.js) - Google Analytics