[yunqa.de] DIRegEx Case-sens

  • From: Alexey T <aaa5500b@xxxxxxxxx>
  • To: yunqa@xxxxxxxxxxxxx
  • Date: Wed, 03 Dec 2008 12:10:09 +0300

DIRegEx 4.6
I have bug with case-sens-ty.
Letters "Р"-"Я" are uppercase for "р"-"я".
When I perform search with Case-Insensitive, the case-sensitive is used for these letters.
Code:
//-----------------------
function SMatch(const S, Re: WideString; ACase, AInv: Boolean): Boolean;
var
  RegEx: TDIRegEx;
begin
  Result := False;
  if (S = '') or (Re = '') then Exit;
  RegEx := TDIPerlRegEx.Create(nil);
  try
    RegEx.CompileOptions := RegEx.CompileOptions + [coUtf8];
    if ACase then
      RegEx.CompileOptions := RegEx.CompileOptions - [coCaseLess]
    else
      RegEx.CompileOptions := RegEx.CompileOptions + [coCaseLess];
    RegEx.SetSubjectStr(UTF8Encode(S));
    RegEx.MatchPattern := UTF8Encode(Re);
    Result := RegEx.Match(0) >= 0;
    if AInv then
      Result := not Result;
  finally
    RegEx.Free;
  end;
end;
Alex

--
Яндекс.Фотки - легко загрузить с мобильного http://mobile.yandex.ru/fotki/

Other related posts: