c# - C#正则表达式查找所有数字并将它们四舍五入到小数点后两位
问题描述
我正在尝试清理使用 c# 发送的状态电子邮件,该电子邮件包含很多具有最多 8 或 9 位小数的数字。我如何找到所有数字并用它们自己的圆形版本替换它们?
我能想到的第一种方法就是使用 regex 找到它们,然后一个一个地替换它们,但是有没有办法使用 regex.replace 和两个模式来做到这一点?
解决方案
我认为您想使用 MatchEvaluator 参数或 Regex.Replace。它需要一个代表根据每个特定匹配选择您的替代者。像这样的东西:
var data = ""
//Just a sample pattern for decimal numbers
var pattern = @"^[0-9]([.,][0-9]{1,9})?$";
var Matches = Regex.Replace(data, pattern, (m) =>
{
//double.Parse your m.ToString in here, round it up or down, then convert it back
//to a string and return that
});
推荐阅读
- mysql - 从一个表中选择所有记录并从第二个表中求和 MySQL
- ruby-on-rails - 如何在 Ruby on Rails 中将无限日期范围保存到 Postgres?
- reactjs - lodash debounce 可以在不使用钩子的情况下在无状态 React 组件中使用吗?
- swift - 如何从 Firebase 数据库中获取数据
- javascript - JavaScript 显示内容
- mongodb - 如何在 Github Actions 构建脚本上使用基础镜像?
- libreoffice-calc - 假设 Libreoffice 中的值:如果输入单元格具有特定值,我可以使用计算的值计算公式吗?
- javascript - 正则表达式删除多于 on : 或
- python - 用非类型对象注释参数
- node.js - 如何减慢节点 JS 事件侦听器的速度?