如何在 boost::regex 中找到子匹配的字符串位置
How can I find position in string for submatch in boost::regex
在boost::regex_search(start, end, what, pattern)
之后,我可以通过调用what.position()
在搜索字符串中找到完全匹配的起始位置。
如何找到子匹配的这些位置?
我需要这样的代码:
if(boost::regex_search(start, end, what, pat))
{
int len = what["namedGroup"].length();
int pos = what["namedGroup"].position();
}
我找到了解决方案。
boost::match_results的每个元素,在我的例子中是 std::string::const_iterator 的 boost::match_results,具有属性第一和第二,它们相应地指向搜索字符串中此子匹配的开始和结束迭代器。因此,您可以使用迭代器或通过 std::d istance() 将它们转换为索引
std::string::const_iterator start, end;
boost::match_results<std::string::const_iterator> what;
start = searchString.begin();
end = searchString.end ();
if(boost::regex_search(start, end, what, pattern))
{
std::string::const_iterator beg = what["namedGroup"].first;
std::string::const_iterator end = what["namedGroup"].second;
int beginIndex = std::distance(start, beg);
}
相关文章:
- 如何将元素添加到向量的字符串位置
- 我的目标是编写一个程序来计算和存储字符串在字符数组中出现的位置
- 为什么字符串的 move() 会改变内存中底层数据的位置?
- 返回员工和工资(给定位置子字符串)
- 将文件复制到自定义位置,存在字符串转换问题
- 替换字符串位置 X 中的单词C++
- 在特定位置为字符串添加空格
- 计算在同一位置至少包含一个常用字符的不同字符串对
- 如何在另一个字符串的x位置插入一个字符串?
- 我如何知道字符串中字符相对于英文字母的位置值?
- C++ - 重置字符串流不会重置获取位置或清除标志吗?
- 反转字符串中单词的位置,而不更改 O(1) 空格限制中特殊字符的顺序
- 如何从字符串向量中选择第 n 个位置?
- 如何从输入字符串中提取特定位置的字符?
- C++字符串_Xout_of_range("无效的字符串位置");
- 为字符串中的每个字符(不是字符位置!)分配唯一的索引
- 数字的总和在奇数,甚至是字符串的位置
- 快速从文件中读取下一个字符串,而无需移动文件的位置
- 为什么我的字符串在错误的位置打印
- 实际位置字符串格式