从字符串中的多个数字中删除前导零? [C++]

Posted

技术标签:

【中文标题】从字符串中的多个数字中删除前导零? [C++]【英文标题】:Remove leading zeros from multiple numbers in string? [C++] 【发布时间】:2015-10-29 22:41:07 【问题描述】:

假设我有一个包含“00001234 00002345”的字符串,但我想在“1234 2345”处输出它。我该怎么办?

    str.erase(0, str.find_first_not_of('0'));

这会从第一个数字中删除 0,但不会删除前面的任何数字。

【问题讨论】:

【参考方案1】:

如果您对正则表达式解决方案感兴趣,可以使用\b0+ 正则表达式(它匹配非单词字符后的0 符号,即[a-zA-Z0-9_]):

std::string input("00001234 00002345");
std::regex rgx(R"(\b0+)");
std::cout << std::regex_replace(input, rgx, "");
// => 1234 2345

见IDEONE demo

请注意,原始字符串文字允许我们使用单个反斜杠来转义正则表达式元字符。

【讨论】:

以上是关于从字符串中的多个数字中删除前导零? [C++]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 C++ 从字符串中删除前导零?

如何删除字符串中的前导零和尾随零? Python

从 QString 中删除前导零的最佳方法

用字母和数字删除字符串中的前导 0

从Javascript中的数字中删除前导零[重复]

使用 to_char 函数解析为字符串时,如何从 Oracle 中的日期和月份值中删除前导零?