powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Математические операции в Regex
7 сообщений из 7, страница 1 из 1
Математические операции в Regex
    #38005911
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток.

Можно ли при помощи регулярного выражения выполнять математические операции с частью строки?
Если "да", то как это сделать в Regex?

Например, имеются такие строки:
авторПоз. 1
Поз. 2

Требуется все значения позиций увеличить на 1.

Условие выборки в Regex задаю такое:
Условие выборки^(Поз\.) ([0-9]+)$

Нужно правильно построить условие изменения.

Пробовал, к примеру такое:

Правило на изменение$1 {$2+1}

В результате получаю:
РезультатПоз. {1+1}
Поз. {2+1}


В интернете ищу, не могу рабочий вариант найти для подобной задачи.

______________________________________________________________________________________
Бывают такие решения, после принятия которых даже тараканы в голове аплодируют стоя...
...
Рейтинг: 0 / 0
Математические операции в Regex
    #38005993
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Compositum,

Нет. В строке нет чисел, есть только символы. Можно попытаться изощриться с символьной арифметикой (скажем, поставить в конец числа символ переноса и "протащить" его сквозь число, заменяя цифры правилами вида "3C" -> "E4", "7E" -> "E7", "\D[CE]" -> "\D"), но лично я бы не советовал.
...
Рейтинг: 0 / 0
Математические операции в Regex
    #38006057
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Compositum, средствами самих регулярных выражений это не сделать. Но! У метода Regex.Replace есть перегруженные варианты принимающие делегат MatchEvaluator. В него будет передаваться куски строки удовлетворяющие тобой шаблону и там ты можешь реализовать любую необходимую логику.
...
Рейтинг: 0 / 0
Математические операции в Regex
    #38006065
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Благодарю всех за ответы, буду пробовать MatchEvaluator.
...
Рейтинг: 0 / 0
Математические операции в Regex
    #38006244
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
CompositumНапример, имеются такие строки:
авторПоз. 1
Поз. 2

Требуется все значения позиций увеличить на 1.
Для этого есть LINQ. Регулярки для изменения - извращение
...
Рейтинг: 0 / 0
Математические операции в Regex
    #38006721
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2Для этого есть LINQ. Регулярки для изменения - извращение
Ну прямо таки извращение. Регулярки придуманы именно для манипуляции текстом. Приведи код как бы ты это реализовал через LINQ и затем сравним с решением через Regex.Replace().
...
Рейтинг: 0 / 0
Математические операции в Regex
    #38006833
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
bazile,

Был невнимателен читая ТЗ
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Математические операции в Regex
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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