c/c++中带有千位分隔符的数字的正则表达式写法?

如题所述

第1个回答  2023-08-10
(\d{1,3},)*(\d{3},)*\d{3}
这个可以匹配超过4位数的带千分符的数字串
第2个回答  2023-08-20
在C/C++中,正则表达式不是内置的,但有一些库可以提供这个功能,比如POSIX regex库。
对于千位分隔符,这取决于你的需求。如果你需要匹配的数字本身就带有千位分隔符,那么你可以使用以下的正则表达式:
c([0-9]+([,\.][0-9]{3})+)

这个正则表达式会匹配一个整数,该整数可以带有逗号或点作为千位分隔符。例如,它可以匹配 "1,000","1.000","10,000","10.000" 等。
如果你需要在字符串中查找这样的数字,你可能需要使用std::regex_search或者类似的方法。例如:
cpp#include <regex>
#include <string>

std::string str = "The total is $1,000,000.00";
std::regex re("([0-9]+([\\,\\.][0-9]{3})+)");
std::smatch match;

if(std::regex_search(str, match, re)) {
std::cout << "Found match: " << match[0] << std::endl;
} else {
std::cout << "No match found" << std::endl;
}
在这个例子中,我们搜索字符串中的所有与正则表达式匹配的字符串,并打印出来。