【发布时间】:2010-11-26 16:35:21
【问题描述】:
我正在构建一个 .Net 应用程序,我需要从字符串中删除任何非十进制字符(不包括第一个 '.')。本质上,我正在清理用户输入以强制得到实数结果。
到目前为止,我一直在使用在线 RegEx 工具来尝试一次性实现这一目标,但我并没有走得太远。
我希望做到这一点:
asd123.asd123.123.123 = 123.123123123
不幸的是,我只设法到达了这个阶段
asd123.asd123.123.123 = 123.123.123.123
通过使用此代码。
System.Text.RegularExpressions.Regex.Replace(str, "[^\.|\d]*", "")
但我一直在尝试删除除第一个小数点以外的所有内容。
这可以一次性完成吗?
有没有更好的方法™?
【问题讨论】:
-
s/[.]/\x{DEADBEEF}/; s/[^.\d\x{DEADBEEF}]//g; s/\x{DEADBEEF}/./;