我正在使用下面的代码尝试使用正则表达式来匹配符号(例如,我正在尝试匹配圆形星形符号http://graphemica.com/%E2%9C%AA)
#include <regex>
#include <iostream>
int main() {
std::wsmatch matches;
std::wstring x = L"✪";
// std::wregex e(L"(\\pS)+");
std::wregex e(L"([[:S:]]+)");
if (std::regex_match(x, matches, e))
{
// never reached
std::cout << "Never reached";
}
std::cout << "Bye.";
return 0;
}
符号✪(0x272A)不匹配,我也尝试了其他符号,但它们都不起作用(例如©)。
我想[:S:]
,\pS
和\p{S}
,他们没有工作,(最后一个抛出异常)
这是与boost库类似的(但不是相同的名称空间)问题,(常见的符号'\ p {S}'未使用boost wregex'匹配')
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句