|
Математические операции в Regex
|
|||
---|---|---|---|
#18+
Доброго времени суток. Можно ли при помощи регулярного выражения выполнять математические операции с частью строки? Если "да", то как это сделать в Regex? Например, имеются такие строки: авторПоз. 1 Поз. 2 Требуется все значения позиций увеличить на 1. Условие выборки в Regex задаю такое: Условие выборки^(Поз\.) ([0-9]+)$ Нужно правильно построить условие изменения. Пробовал, к примеру такое: Правило на изменение$1 {$2+1} В результате получаю: РезультатПоз. {1+1} Поз. {2+1} В интернете ищу, не могу рабочий вариант найти для подобной задачи. ______________________________________________________________________________________ Бывают такие решения, после принятия которых даже тараканы в голове аплодируют стоя... ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2012, 15:38 |
|
Математические операции в Regex
|
|||
---|---|---|---|
#18+
Compositum, Нет. В строке нет чисел, есть только символы. Можно попытаться изощриться с символьной арифметикой (скажем, поставить в конец числа символ переноса и "протащить" его сквозь число, заменяя цифры правилами вида "3C" -> "E4", "7E" -> "E7", "\D[CE]" -> "\D"), но лично я бы не советовал. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2012, 16:20 |
|
Математические операции в Regex
|
|||
---|---|---|---|
#18+
Compositum, средствами самих регулярных выражений это не сделать. Но! У метода Regex.Replace есть перегруженные варианты принимающие делегат MatchEvaluator. В него будет передаваться куски строки удовлетворяющие тобой шаблону и там ты можешь реализовать любую необходимую логику. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2012, 16:47 |
|
Математические операции в Regex
|
|||
---|---|---|---|
#18+
Благодарю всех за ответы, буду пробовать MatchEvaluator. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2012, 16:53 |
|
Математические операции в Regex
|
|||
---|---|---|---|
#18+
CompositumНапример, имеются такие строки: авторПоз. 1 Поз. 2 Требуется все значения позиций увеличить на 1. Для этого есть LINQ. Регулярки для изменения - извращение ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2012, 18:53 |
|
Математические операции в Regex
|
|||
---|---|---|---|
#18+
Cat2Для этого есть LINQ. Регулярки для изменения - извращение Ну прямо таки извращение. Регулярки придуманы именно для манипуляции текстом. Приведи код как бы ты это реализовал через LINQ и затем сравним с решением через Regex.Replace(). ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2012, 16:52 |
|
|
start [/forum/topic.php?fid=20&fpage=191&tid=1405774]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 138ms |
0 / 0 |