我有一个简单的 C++、COM 可见、正则表达式实用程序,它根据是否找到匹配项返回真/假。A
[A]
诸如(借用单元测试中的方法签名)之类的表达式匹配。一个匹配 Excel 范围字符串的好表达式(A1:Z10)
工作得很好。但是像这样的表达
This is a long sentence.
[A-Za-Z]*
无论有无忽略大小写,都不匹配。我已经尝试了我能想到的变体:(\w[A-Z]*
忽略大写设置),.NET 变体 \p...(有些东西,现在不记得了!)。没有任何效果。有趣的是,我在 VS2012 中有两个不同的正则表达式测试器插件,它们都说正则表达式在句子上匹配。
/EDIT/ 不要认为这会有多大帮助,但这里是 C++ 代码的操作部分:
<!-- language: lang-cpp -->
varRegex.ChangeType(VT_BSTR);
using namespace std::regex_constants;
wregex regexPredicate((wchar_t*)varRegex.bstrVal, ECMAScript|icase);
if (varValue.vt == VT_BSTR)
{
pRetVal->vt = VT_BOOL;
pRetVal->boolVal = std::regex_match( static_cast<wchar_t*>(varValue.bstrVal), regexPredicate )
? VARIANT_TRUE : VARIANT_FALSE;
}
嗯...我一定是用错了。
想法?
谢谢。