C#使用REGEX或其他方法去除不需要的数据

时间:2018-07-30 21:50:35

标签: c# regex wpf replace

所以我正在尝试从字符串中剥离数据,因为我在WPF中有一个看起来像__,___的“预设”输入,现在用户必须输入类似30,589的东西,但是当用户只需给出550,就需要除去其余部分(保留,)以正确地使输入值浮动。我现在拥有的代码如下所示:

if (inp_km.Text == "__,___")
{
    team_results.results[inp_tour_part.SelectedIndex].km = 
        float.Parse("00,000", 
                    NumberStyles.AllowDecimalPoint, 
                    CultureInfo.GetCultureInfo("nl-NL")); // Give the new value
}
else
{
    team_results.results[inp_tour_part.SelectedIndex].km = 
        float.Parse(inp_km.Text, 
                    NumberStyles.AllowDecimalPoint, 
                    CultureInfo.GetCultureInfo("nl-NL")); // Give the new value
}

但是这段代码只是检查输入是否为空白...有人可以帮我吗?

修改

所以我包括了一个屏幕,这是用户获得的输入布局;

inputs

您可以看到,输入是“预填充的”,这种输入的内容是一个“字符串”,所以,让我说,我在第一个输入中键入的只是5;

filled input

然后该值(在C#中由input_name.Text撤消)为5_:__,但这是一个“错误”的值,您不能填写此类内容,我如何检查是否还有一个输入中的:_

此外,底部输入是相同的,但随后需要完全填写。

1 个答案:

答案 0 :(得分:2)

因此,您要检查输入是以下两种形式之一:(DateField1 + TimeField1) - (DateField2 + TimeField2) 12,345

使用12:34可以很容易地做到这一点。

Regex

注意:

您还没有弄清楚输入的有效格式。如果存在逗号(例如,两位数后跟一个逗号,再跟着三位数字),则上面的内容将严格地针对static void Main(string[] args) { var inputComma = "12,345"; var inputColon = "98:76"; Regex regexComma = new Regex(@"^\d{2},\d{3}$"); Regex regexColon = new Regex(@"^\d{2}:\d{2}$"); var matchComma = regexComma.Match(inputComma); if (matchComma.Success) { Console.WriteLine(inputComma); } Console.WriteLine(); var matchColon = regexColon.Match(inputColon); if (matchColon.Success) { Console.WriteLine(inputColon); } Console.ReadLine(); } 格式为真,对于冒号,只有12,345格式的数字(两位数)仅在结肠之前和之后)。

您可能希望根据您的确切条件修改12:34

相关问题