|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Допустим у нас есть ассоциативный массив std::map<std::string, std::string> который определяет замены, которые нужно провести в строке. Неужели не существует готового модуля? Посмотрел в Boost.StringAlgo вроде ничего не нашёл. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2022, 15:04 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Готовый модуль для одного простейшего цикла? Нынешние программисты совсем обленились... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2022, 15:08 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Готовый модуль для одного простейшего цикла? Нынешние программисты совсем обленились... Так в Boost.StringAlgo тоже не сказать что бы сложные алгоритмы. Зачем нужна эта библиотека? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2022, 15:12 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Готовый модуль для одного простейшего цикла? Нынешние программисты совсем обленились... На самом деле тут не все так просто с циклом: 1. Надо словарь отсортировать от длинных строк к коротким, т.к. короткая может сократиться, а потом длинная не совпадет, т.е. компаратор надо свой. 2. Одного цикла мало, т.к. если в цикле произошло сокращение, то надо еще один цикл, вдруг в результате сокращения сформировалась другая строка из словаря. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2022, 15:18 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Это проблемы составляющего словарь замен и список правил замены. Потому-то и нет готового модуля, что у каждого требования свои. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2022, 15:32 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Тут важно в каком порядке заменять. Я как-то раз по молодости делал из строки XML строку .... Вобщем надо было амперсанд заменить на & ну и другие кавычки и знаки больше-меньше. Можете себе представить что будет после Код: plaintext 1.
и еще раз. Короче Марковские алгоритмы отдыхали. Я переполнил память :) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2022, 18:02 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Dima T 2. Одного цикла мало, т.к. если в цикле произошло сокращение, то надо еще один цикл, вдруг в результате сокращения сформировалась другая строка из словаря. Вот это самый интересный момент. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2022, 19:25 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
mayton, боюсь спросить - а что за самый интересный момент? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2022, 19:35 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Гарантии того что алгоритм когда-то остановится. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2022, 19:39 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
mayton Гарантии того что алгоритм когда-то остановится. В обычном языке имеет смысл только сокращение, поэтому исходная подстрока должна быть больше замены. В таком случае гарантированно остановится. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2022, 19:53 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Давайте послушаем как себе это видит автор. Для меня цена вопроса - в замене Код: plaintext 1.
Будем ли мы по 1 разу применять каждую замену? Или возможен вариант что после того как все замены закончились - в строке внезапно появятся новые подстроки которые снова открывают возможности к заменам. Понятно что такая циклическая замена как я описал - безсмысленна. Но проговорить ее стоит т.к. это вопрос стабильности API. Чтоб не было строк-осцилляторов. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2022, 20:05 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Лично я решал задачу сокращения наименований товаров. Чтобы оно компактнее было, в ячейку грида на экране влезало как можно больше и т.п. Тут бессмысленна замена подстроки на равную по длине. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2022, 20:14 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Из последних таких задач я помню надо было просто ключевые слова SQL такие как USER, TABLE, ORDER в динамических запросах заменять на закавыченные. И из логов пароли выкидывать. На звездочки ****** заменять. Ну и всякую sensitive-инфу. Личные данные там. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2022, 20:20 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Это проблемы составляющего словарь замен и список правил замены. Потому-то и нет готового модуля, что у каждого требования свои. Спорное утверждение. Такие языки как XML схема и регулярные выражения тоже не всем требованиям удовлетворяют, однако они существуют и востребованы… PS: Нужно просто в макросе __DATE__ заменить месяцы. Jun -> Июнь. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2022, 20:32 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Не получилось у меня на лямбдах. Да и std::string оказался дремучий. Я совсем забыл что в нем нету replace_all. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2022, 22:28 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
petravСпорное утверждение. Такие языки как XML схема и регулярные выражения тоже не всем требованиям удовлетворяют, однако они существуют и востребованы… Потому что у них есть чёткие спецификации. У твоей задачи их нет. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2022, 23:07 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Наверное в Perl такая задача решается кратко. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2022, 23:16 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Dima T Лично я решал задачу сокращения наименований товаров. Чтобы оно компактнее было, в ячейку грида на экране влезало как можно больше и т.п. Тут бессмысленна замена подстроки на равную по длине. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2022, 09:34 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
ИМХО если надо просто заменить одну подстроку на другую в один проход, то доп.билиотек не надо никаких, даже если нет готовой функции для этого, то она пишется в пару строк. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2022, 09:39 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Ничего удивительного в таких запросах нет. Порог вхождения в программисты настолько упал, что в npm например даже есть модуль is-odd. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2022, 12:49 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Anatoly Moskovsky Ничего удивительного в таких запросах нет. Порог вхождения в программисты настолько упал, что в npm например даже есть модуль is-odd. Ничего себе, я вам идею подарил на новый язык а-ля регулярные выражения. А Вы мне «начинающий программист». Московский, в историю можете войти… Это ж мне нужно из __DATE__ выделить сокращение месяца. Написать отображение Jun -> Июнь и т.д. А лучше по английскому сокращению месяца определить его номер. Преобразовать в дату и распечатать месяц компиляции в текущей локали. Потом запихнуть это в значение возвращённое __DATE__. Я устану это программировать. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2022, 14:05 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Модератор: Всё что было похоже на оффтоп - поудалял. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2022, 14:21 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
maytonНаверное в Perl такая задача решается кратко. посмотрел в сторону Perl - не увидел что в языке Practical Extraction Report Language это может решатся кратко. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2022, 23:38 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
mayton Тут важно в каком порядке заменять. Я как-то раз по молодости делал из строки XML строку .... Вобщем надо было амперсанд заменить на & ну и другие кавычки и знаки больше-меньше. Можете себе представить что будет после Код: plaintext 1.
и еще раз. Короче Марковские алгоритмы отдыхали. Я переполнил память :) Тьюринг-полные, кстати petrav, есть такой язык программирования - Рефал что-то мне подсказывает, что самые эффективные его компиляторы делают дет. конечный автомат ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2022, 00:06 |
|
Замена в строке по словарю
|
|||
---|---|---|---|
#18+
Вот как-то я property менял в старых проектах. Точно не помню но как-то так. Код: plaintext 1.
Есть у утилиты брат-близнец awk. Делает примерно то-же. Но это всё мелочи по сравнению с Perl. Насколько я разбираюсь он поглощает и покрывает все опции этих утилит и скриптует их исполнение в коде. Я не утверждаю что в Перле это будет в 1 строку но должно быть побогаче чем sed. Особенно если у нас задан справочник месяцев. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2022, 00:36 |
|
|
start [/forum/topic.php?fid=57&tid=2017128]: |
0ms |
get settings: |
24ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
54ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
468ms |
get tp. blocked users: |
2ms |
others: | 29ms |
total: | 611ms |
0 / 0 |