RegexC++:从字符串中提取子字符串,然后计算每个单词
Regex C++: extract substring from a string then count each word
我有以下格式的文本字符串。
*tag0 hi how are you tag1 where are you from tag3 i would like to eat some food*
文本在一个向量中,我将其分配给一个变量字符串line2。我想从每个标签中提取单词,并将其作为标记进行计数。下面是我的代码。
smatch t_headermatch;
regex re("tag[0-9]+");
for (int i = 0; i < (int)boxraw.size(); ++i) {
line2 = boxraw.at(i);
while (regex_search(line2, t_headermatch, re)){
for (auto x : t_headermatch)cout << x << " ";
//If find tag header, print the words after the header and count it as token.
//repeat the process until found a new tag header.exit if no tag found
cout <<endl;
line2 = t_headermatch.suffix().str();
}
我预期的输出如下:
Found 3 tag
tag0
hi token 1
how token 2
are token 3
you token 4
tag1
where 1
are 2
you 3
tag3
i 1
would 2
like 3
to 4
eat 5
some 6
food 7
使用以下regex
"tag\d+((?:\s+(?!tag)\w+)+)"
每个regex_search
将返回match_result
对象
t_headermatch[0] : the whole match, i.e. "tag0 hi how are you"
t_headermatch[1] : the substring with tokens "hi how are you"
此外,您还需要拆分代币等。
相关文章:
- 我的目标是编写一个程序来计算和存储字符串在字符数组中出现的位置
- 通过字符串来计算长度需要更长的时间,而不是移动字符串几次?
- 如何计算特定字母在字符串中出现的次数?(C++)
- 计算在同一位置至少包含一个常用字符的不同字符串对
- 给定一个单词数组和一个字符串,如何计算给定字符串中的所有单词
- 使用标准库计算字符串中的十进制数
- 如何计算字符串中用户输入元素的出现次数?
- 如何在 C++ 中计算字符串的算术运算
- 计算字符串中子字符串的出现次数
- 用于计算字符串中元音的函数
- 当 NUL 字符被定义为字符串的一部分时,为什么 strlen() 不计算终止 NUL 字符的字节?
- 计算表达式字符串由 std::map 中的键组成
- 如何计算字符串 c++ 中的"xxx"数?
- 通过将文本文件读取为字符串/向量来计算加权/未加权 GPA
- 如何更有效地计算n个字符串之间的不匹配分数?
- 将字符串计算为 C++ 中的表达式
- 在C++中从字符串计算算术表达式
- 在字符串计算后添加空字符
- C++使用C字符串计算文件中的字符、单词、句子
- 不使用字符串计算数字中的数字