Регулярное выражение для замены чисел в файле

Существует много чисел как 200 20.5 329.2... в файле. Теперь, я должен заменить каждое число A A*0.8. Там какой-либо простой метод состоит в том, чтобы заменить исходное значение другим на основе исходного значения?

С уважением,

5
задан Yongwei Xing 31 March 2010 в 06:22
поделиться

2 ответа

Попробуйте это:

String s = "This is the number 2.5. And this is 7";
s = Regex.Replace(s, @"[+-]?\d+(\.\d*)?", m => {return (Double.Parse(m.ToString())*0.8).ToString();});
// s contains "This is the number 2. And this is 5.6"

Изменить: Добавлен знак плюс / минус в качестве необязательного символа впереди. Чтобы не считать 5 из 3–5 отрицательным, вы можете использовать ((? <= \ S) [+ -])? вместо [+ -]

8
ответ дан 14 December 2019 в 04:34
поделиться

Использование лямбда-выражения и немного улучшенная обработка таких случаев, как . Значение - 0,5. Следующее предложение :

var s = "This is the number 2.5. And this is 7, .5, 5. Yes.";
var result = Regex.Replace(s, @"[+-]?(\d*\.)?\d+", m => (double.Parse(m.Value) * 0.8).ToString());
0
ответ дан 14 December 2019 в 04:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: