如何通过正则表达式从 CString 中提取名称?
How to you regex to extract just the name from a CString?
取具有以下定义的CString
:
CString strNameText = _T("Mr Happy [12]");
我有一系列的名字,所有名字都有 space,数字在末尾是括号。现在我只想从字符串中提取名称。
我意识到我可以找到 " ["
的第一个索引,然后将左侧的文本提取到该索引。但是我可以使用任何正则表达式命令来做同样的事情吗?
我可能会建议在这里替换正则表达式,以删除字符串末尾的括号中的术语。
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());
取具有以下定义的CString
:
CString strNameText = _T("Mr Happy [12]");
我有一系列的名字,所有名字都有 space,数字在末尾是括号。现在我只想从字符串中提取名称。
我意识到我可以找到 " ["
的第一个索引,然后将左侧的文本提取到该索引。但是我可以使用任何正则表达式命令来做同样的事情吗?
我可能会建议在这里替换正则表达式,以删除字符串末尾的括号中的术语。
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());