如何regex从CString中提取名称?



取具有以下定义的CString:

CString strNameText = _T("Mr Happy [12]");

我有一系列的名字,所有的名字都有一个空格,最后是一个数字。现在我只想从字符串中提取名称。

我意识到我可以找到" ["的第一个索引,然后提取左侧的文本直到该索引。但是我可以使用任何regex命令来做同样的事情吗?

我建议在这里使用regex替换,以删除字符串末尾带括号的项。

std::string strNameText ("Mr Happy [12]");
std::regex r ("\s+\[\d+\]$");
std::cout << std::regex_replace (strNameText, r, "");  // Mr Happy

c++例子
#include <regex>
CString strNameText = _T("Mr Happy [12]");
std::string s1 = CT2A(strNameText);
std::regex r("\s+\[\d+\]$");
std::string s2 = std::regex_replace(s1, r, "");
return CString(s2.c_str());

最新更新