Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.24;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.004 c
15-1354307402
Юрий
2012-12-01 00:30
2013.03.24
С днем рождения ! 1 декабря 2012 суббота


15-1353046587
vitv
2012-11-16 10:16
2013.03.24
В какой версии появилась? {$WARN SYMBOL_PLATFORM OFF}


2-1348523566
Den
2012-09-25 01:52
2013.03.24
Как называется компонент чтоб убрать лишние на форме невидимые


15-1354529389
Правнук Винни-пуха
2012-12-03 14:09
2013.03.24
RegExp — странное поведение свойства length


15-1354480204
Юрий
2012-12-03 00:30
2013.03.24
С днем рождения ! 3 декабря 2012 понедельник