Форум: "Прочее";
Текущий архив: 2013.03.24;
Скачать: [xml.tar.bz2];
ВнизRegExp — странное поведение свойства length Найти похожие ветки
← →
Правнук Винни-пуха (2012-12-03 14:09) [0]В справке про TMatch.Length написано: «The length of the substring that matched the regular expression.» Т.е. это длина подстроки, которая соответствует регулярному выражению.
Вот такой код возвращает странные значения (в Delphi XE2):procedure TForm1.Button1Click(Sender: TObject);
var len1, len2, len3, len4: integer;
begin
len1 := TRegEx.Create("ab").Match("ab").Length; //2
len2 := TRegEx.Create("ab").Match("ab!").Length; //2
len3 := TRegEx.Create("ab").Match("!ab").Length; //3
len4 := TRegEx.Create("ab").Match("!ab!").Length; //2
Caption := IntToStr(len1) + " " + IntToStr(len2) + " " + IntToStr(len3) + " " + IntToStr(len4);
end;
Почему len3 = 3? Ведь шаблону может соответствовать только подстрока из бвух букв: "ab" и ничего другого. А длина строки "ab" = 2 символа.
Не думаю, что это глюк, скорее всего просто свойство length показывает что-то другое. Но тогда не понятно, что именно.
Проверьте, пожалуйста, в Delphi XE3 или в Delphi XE2 с последними обновлениями то же самое?
← →
Правнук Винни-пуха (2012-12-03 14:34) [1]Фга, разобрался. Это их баг все-таки оказался...
http://edn.embarcadero.com/article/40984[QC Short Description]
TRegEx.Matches returns wrong length.
[QC Description]
TRegEx.Matches returns wrong length.
QC Entry 87611
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2013.03.24;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.002 c