Регулярные выражения

Автор siti, 7 июня 2022, 10:58

0 Пользователи и 1 гость просматривают эту тему.

siti

Сделал макрос для замены ячеек в calc через регулярные выражения.
Однако не могу осилить создание самого выражения. Получается пока только если ставить спецсимвол, например "_" перед заменяемым текстом (_Тест65).

Пример текстовых ячеек:
Любой Текст
Тест-65
(р)Любой Текст/15.05
(с)ЛюбойТекст55

Какое должно быть регулярное выражение, чтобы результаты замены на строку "Замена" были следующими (меняем целиком ячейку на "Замена" если в ней нет (р) или (с)):

Замена
Замена
(р)ЛюбойТекст/15.05
(с)ЛюбойТекст55

тестирую тут: https://regex101.com/

siti

pattern = "\b_[ ()А-ЯA-Za-zа-я0-9._%+-]+" 'это с подчеркиванием
но хочется отказаться от этого неудобства

mikekaganski

(р) и (с) могут быть в любом месте или только вначале?
С уважением,
Михаил Каганский

siti

Цитата: mikekaganski от  7 июня 2022, 11:55(р) и (с) могут быть в любом месте или только вначале?
только в начале

mikekaganski

Следующий регекс находит только ячейки, в которых нет ни (р), ни (с) в любой позиции.
^(?:(?!\([рс]\)).)*$

Источник:
https://stackoverflow.com/a/406408/1397376

А для "только в начале" проще:
^(?!\([рс]\)).*$
С уважением,
Михаил Каганский

siti

Цитата: mikekaganski от  7 июня 2022, 12:09А для "только в начале" проще:
Михаил, спасибо большое!