【发布时间】:2020-12-09 19:56:55
【问题描述】:
我正在尝试使用正则表达式来格式化用户输入的数字文本, 负数和正数。
我试过这种模式
[^-.0-9]
但没有按预期工作,并且接受这样的字符串 -00-000---0000。
上网查了一下,发现了这种模式
@"^-\d *\.?\d +$"
但是正则表达式替换不适用于这样的模式。
我也在粘贴代码。
var text = Regex.Replace(string, @"^-\d *\.?\d +$", "");
上面的代码不起作用。
如果我输入任何字符串变量 text 将包含与我输入的完全相同的字符串,而无需格式化或将其转换为正则表达式。
是代码的问题还是我看不懂的模式。
我想要这样的东西
| Input | Output |
|---|---|
| -9999 | -9999 |
| 99ab9 | 999 |
| 676y7 | 6767 |
| 99.0hu | 99.0 |
| -99.00 | -99.00 |
【问题讨论】:
-
请提供一些示例输入。
-
您可以添加一些输入示例和预期结果吗?
-
我添加了一些输入案例以便更好地理解
-
可能有多种方法可以清除无效字符串。例如,
9-9应该变成-9还是99?附带说明,当您键入的符号根据任意规则消失时,这是一种糟糕的用户体验,请不要这样做。 -
我知道,但这是一个要求。我也无法理解为什么替换功能不起作用。