我可以有一个像这样的字符串:
During this time , Bond meets a stunning IRS agent , whom he seduces .
我需要删除整个字符串中逗号之前和句点之前的多余空格。我尝试将其放入字符 vector 中,但如果当前字符是“”并且后面的字符是“.”,则不会 push_back
或“,”但它不起作用。我知道有一种简单的方法可以使用 trim()、find()
或 erase()
或某种 regex
但我对正则表达式不是最熟悉的。
最佳答案
解决方案可能是(使用正则表达式库):
std::string fix_string(const std::string& str) {
static const std::regex rgx_pattern("\\s+(?=[\\.,])");
std::string rtn;
rtn.reserve(str.size());
std::regex_replace(std::back_insert_iterator<std::string>(rtn),
str.cbegin(),
str.cend(),
rgx_pattern,
"");
return rtn;
}
该函数接受输入一个字符串并“修复空格问题”。
关于c++ - 删除字符串中句号和逗号之前的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40937557/