powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / замена регулярки в строке
14 сообщений из 14, страница 1 из 1
замена регулярки в строке
    #39911338
yemets63
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
возник спор у студентов, что лучше, и как, версия Delphi XE10

надо заменить все слова в тексте на Null если к ним привязаны цифры

Строка = "
Слово, Слова, слов, 1 4 , 3 2
Слово1 Слово2, Слово3 Слово4, Слово5, Слово6
Слово, Слова, слов, 5 4, 3 , 2
"
должно получится
Строка = "
Слово, Слова, слов, 1 4 , 3 2
1 2, 3 4, 5, 6
Слово, Слова, слов, 5 4, 3 , 2
"

и так что лучше

1. replacestr(replacestr(replacestr(replacestr(replacestr(replacestr(Variable,'Слово1',1),'Слово2',2) - и.т.д. когда мы знаем всю строку и не так много заменять
2. цикл, который выискивает Слова с цифрами и чистит текст
3. замены через регулярные выражения, Uses System.RegularExpressions;
...
Рейтинг: 0 / 0
замена регулярки в строке
    #39911344
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yemets63и так что лучше

Сначала надо устроить спор о критерии "лучшести".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
замена регулярки в строке
    #39911351
yemets63
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

завтра посмотрю, что покажут
...
Рейтинг: 0 / 0
замена регулярки в строке
    #39911354
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Первое - лучше для понимания "как делать не надо и почему".
Второе - лучше для опыта и быстродействия.
Третье - для лучше компактности и нечитаемости кода.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
замена регулярки в строке
    #39911409
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

Первое - лучше для понимания "как делать не надо и почему".
Второе - лучше для опыта и быстродействия.
Третье - для лучше компактности и нечитаемости кода.

Я бы сказал что третье - лучше для универсальности. Завтра вам надо будет удалить не слова с цифрами, а слова с котиками - в третьем случае надо будет только шаблон поменять. А во втором?..
...
Рейтинг: 0 / 0
замена регулярки в строке
    #39911412
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvpА во втором?..

То же самое. Разница только в парсере.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
замена регулярки в строке
    #39912093
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
+ к п.3. Регулярку можно и в конфиг вынести. Однако составлять ее надо очень внимательно, чтобы исключить ложные срабатывания
...
Рейтинг: 0 / 0
замена регулярки в строке
    #39912137
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yemets63,

в плане скорости:
железно лучше, отдельно построенный автомат (ДКА)
сравнимо к нему может приблизиться только 2-е, так как зависит от программиста реализующего его

3-е было бы тоже самое, если бы не реализация через НКА
1-е может обогнать при единичной замене как вы и написали
...
Рейтинг: 0 / 0
замена регулярки в строке
    #39912220
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yemets63
надо заменить все слова в тексте на Null если к ним привязаны цифры

Что должно получиться для

Код: plaintext
1.
Строка = 'Слово123 Слово1Слово2___Слово3' [code=plaintext]
                    
...
Рейтинг: 0 / 0
замена регулярки в строке
    #39912224
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне тут пришло в голову, что эту задачу можно решить за один проход, то бишь O(N).
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
замена регулярки в строке
    #39912228
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

конечно. Если идти с конца.
...
Рейтинг: 0 / 0
замена регулярки в строке
    #39912233
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Регулярки так точно не умеют.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
замена регулярки в строке
    #39915723
KtoI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,


Шаблон '[А-яA-z]+\d+' дальше вызвать replace у TRegEx и готова.
...
Рейтинг: 0 / 0
замена регулярки в строке
    #39915724
KtoI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хотя это условно, по сути надо прописать полный список символов '[А-Яа-яA-Za-z]+\d+' и тогда он будет хватать все слова

https://regex101.com/r/hoEckW/1
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / замена регулярки в строке
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]