Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
2-1348523566
Den
2012-09-25 01:52
2013.03.24
Как называется компонент чтоб убрать лишние на форме невидимые


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


15-1351844755
Mara
2012-11-02 12:25
2013.03.24
Локальная сеть


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


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





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский