Здравствуйте.
Суть такова. Хочу в тикле с помощью 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)
- Форум Прошу потестить (2004)
- Форум Потестить прогу (2005)
- Форум ОНИ и до тикля дотянулись (2021)
- Галерея Решил потестить OpenJK (2023)
- Форум Потестить ширину канала (2016)
- Форум Потестите работу сервиса. (2012)
- Форум Потестим 150 гигапикселей? (2014)
- Форум Потестите хардкорный платформер (2014)
- Форум Потестите хостинг картинок (2013)