C++boost库正则匹配拿到位置
时间: 2024-11-09 17:27:51 浏览: 4
C++ boost库,最新版本
尽管C++标准库本身不直接支持正则表达式,但可以通过Boost库来实现。Boost.Regex库提供了正则表达式的功能,包括匹配和找到子表达式的位置。以下是如何使用Boost库进行正则匹配并获取子表达式位置的一个简单示例:
```cpp
#include <boost/regex.hpp>
#include <iostream>
std::string str = "Hello, World! This is a test string.";
boost::regex pattern("(\\w+)\\s+is\\s+(\\w+)"); // 匹配单词,后面跟着空格,再跟"is",最后是另一个单词
boost::smatch match;
if (boost::regex_search(str, match, pattern)) {
std::cout << "Match found at position: " << match.position(1) << " for first group and ";
std::cout << "position: " << match.position(2) << " for second group.\n";
}
else {
std::cout << "No match found.\n";
}
[^1]^
```
在这个例子中,`match.position(i)`会返回第i个捕获组(括号内的部分)在原始字符串中的开始位置。
阅读全文