一致するかどうかに応じて true/false を返す単純な C++、COM 可視、正規表現ユーティリティがあります。A
[A]
(単体テストのメソッド シグネチャから借用) のような式が一致します。Excel の範囲文字列に一致する適切な式は(A1:Z10)
問題なく機能します。みたいな表現ですが、
This is a long sentence.
[A-Za-Z]*
大文字小文字の無視の有無にかかわらず、一致しません。考えられるバリエーションを試してみました: \w[A-Z]*
(caps セットを無視)、.NET のさまざまな \p... (何か、今は思い出せません!)。何も機能しません。興味深いことに、私は VS2012 に 2 つの異なる正規表現テスター プラグインを持っていますが、どちらも正規表現が文で一致すると言っています。
/編集/これはあまり役に立たないと思いますが、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;
}
うーん...私は間違って使用している必要があります。
考え?
ありがとう。