本文整理汇总了C++中TCString::Right方法的典型用法代码示例。如果您正苦于以下问题:C++ TCString::Right方法的具体用法?C++ TCString::Right怎么用?C++ TCString::Right使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TCString
的用法示例。
在下文中一共展示了TCString::Right方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: CompileRegexp
TCString CompileRegexp(TCString Regexp, int bAddAsUsualSubstring, int ID)
{
TCString Result(_T(""));
sPcreCompileData s = {0};
int NewID = PcreCompileData.AddElem(s);
PcreCompileData[NewID].ID = ID;
if (hPcreDLL && !bAddAsUsualSubstring)
{
const char *Err;
int ErrOffs;
int Flags = PCRE_CASELESS;
if (Regexp[0] == '/')
{
TCString OrigRegexp = Regexp;
Regexp = Regexp.Right(Regexp.GetLen() - 1);
TCHAR *pRegexpEnd = (TCHAR*)Regexp + Regexp.GetLen();
TCHAR *p = _tcsrchr(Regexp.GetBuffer(), '/');
if (!p)
{
Regexp = OrigRegexp;
} else
{
*p = 0;
Flags = 0;
while (++p < pRegexpEnd)
{
switch (*p) {
case 'i':
Flags |= PCRE_CASELESS;
break;
case 'm':
Flags |= PCRE_MULTILINE;
break;
case 's':
Flags |= PCRE_DOTALL;
break;
case 'x':
Flags |= PCRE_EXTENDED;
break;
case 'A':
Flags |= PCRE_ANCHORED;
break;
case 'f':
Flags |= PCRE_FIRSTLINE;
break;
case 'D':
Flags |= PCRE_DOLLAR_ENDONLY;
break;
case 'U':
Flags |= PCRE_UNGREEDY;
break;
case 'X':
Flags |= PCRE_EXTRA;
break;
default:
// Result += LogMessage(Translate("Warning, unknown pattern modifier '%c':\n"), *p );
break;
}
}
}
Regexp.ReleaseBuffer();
}
PcreCompileData[NewID].pPcre = pcre_compile(WCHAR2UTF8(Regexp).GetData(), PCRE_UTF8 | PCRE_NO_UTF8_CHECK | Flags, &Err, &ErrOffs, NULL);
if (PcreCompileData[NewID].pPcre) {
PcreCompileData[NewID].pExtra = NULL;
if (pcre_study)
PcreCompileData[NewID].pExtra = pcre_study(PcreCompileData[NewID].pPcre, 0, &Err);
}
else {
// Result += LogMessage(TranslateT("Syntax error in regexp\n%s\nat offset %d: %s."), (TCHAR*)Regexp, ErrOffs, (TCHAR*)ANSI2TCHAR(Err)) + _T("\n\n");
PcreCompileData[NewID].Pattern = Regexp;
}
}
else PcreCompileData[NewID].Pattern = Regexp;
return Result;
}