Здравствуйте. Суть такова. Хочу в тикле с помощью regexp заменить string range таким образом: Если "string range строка первый второй" То "regexp {^.{первый}(.{второй-первый})} строка - подстрока" (Если кто не знает тикль - string range выдаёт подстроку от первого индекса до второго.) "первый" и "второй" - номера индексов, второй-первый - их разность. В "подстрока" должна быть строка от первого индекса до второго. Всё работает, за исключением того, что "первый" и "второй" должен быть меньше 256, и того, что время исполнения regexp много больше, чем string range, хотя особо сложного ничего не сравнивается. Первую проблему удаётся решить через костыли - {.{одначасть}.{втораячасть} и т. д. }, т. е. разбиением числа на сумму, а вот вторую никак. У меня Tcl 8.5.3, Debian. Просьба такая - потестите, плиз, на своих любимых языках, если в них есть регулярки и функции вычисления времени выполнения, и в своих версиях тикля данную конструкцию. Точные данные выбирайте сами, меня просто интересует относительный рост времени исполнения. Я брал строки от десятков до тысяч символов, и пытался выделить где-то 20-80 % строки. Опять же, точное время не интересует - нужен порядок. У меня (строка в q) 200 символов time {regexp {.{20}(.{150})} $q a b} 2226 microseconds 1000 time {regexp {.{255}(.{150})} $q a b} 7961 microseconds 1000 time {regexp {.{255}.{255}(.{150})} $q a b} 20269 microseconds 2000 time {regexp {.{255}.{255}(.{150})} $q a b} 16290 microseconds 2000 time {regexp {.{255}.{255}.{255}.{255}.{255}(.{150})} $q a b} 98682 microseconds То есть видно, что чем больше нужно пропустить изначально, тем сильнее растёт время. Причём растёт оно очень сильно.
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от anonymous
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Новости Языку Tcl (Тикль) исполнилось 30 лет (2019)
- Форум Потестить прогу (2005)
- Форум Прошу потестить (2004)
- Форум ОНИ и до тикля дотянулись (2021)
- Форум Потестите работу сервиса. (2012)
- Форум Потестить баг gcc (2012)
- Форум Потестите хостинг картинок (2013)
- Форум Потестите хардкорный платформер (2014)
- Галерея Решил потестить OpenJK (2023)
- Форум [pidgin] Потестите перевод (2010)