c# - 简单的数字正则表达式不起作用

标签 c# regex

我想将一个 string 剥离成只有数值和一个小数点.... 我的正则表达式有什么问题?

string test = "1e2e3.e4";
var s = Regex.Replace(test, "^\\d*\\.\\d*$", "");

最佳答案

你正在做的是去掉一个十进制数,试试这个:

Regex.Replace(test, "[^\\d.]", "");

如果只想保留一个点,如果有很多点,则首先需要确定要保留哪个点。

更新:假设您想要保留第一个或最后一个点,请使用 String.IndexOfString.LastIndexOf 拆分字符串和使用:

Regex.Replace(test, "\\D", "");

在每个结果字符串上。这可能比不使用正则表达式要慢,因为 Matt Hamilton 的回答很艰难。

关于c# - 简单的数字正则表达式不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4953208/

相关文章:

c# - 滥用 IDisposable 从 "using"语句中获益是否被认为是有害的?

java - 分割逗号分隔的字符串并丢弃字符串中的一些值

匹配所有无序数字序列的正则表达式

c# - 如何上传文件到sharepoint文档库

c# - C#中线程安全的可破坏事件触发类

c# - 上午和下午 12 小时的时间正则表达式

sql - 在更新中使用regexp_replace

java - 我如何在Java中验证日期(仅当前日期或之后)

c# - 事件日志写入错误

c# - 如何在 MongoDB C# 聚合管道中使用 Addfields