将不规则字符串拆分为键值对

时间:2015-10-20 03:07:18

标签: c# string split

我的客户从一个应用程序提交了一个字符串,我无法对其进行验证以限制发送这些字符串。因此,我正在尝试编写一个C#函数将字符串拆分为键值对/确保字符串与格式匹配,以便分割成键值很容易。

以下是我的例子(ABCD在这里很常见),我得到的答案应该以下面的形式为例子

ABCD 1234应该是 - > ABCD-1234

ABCD 1234(其间有两个或两个空格)应为ABCD-1234

ABCD 1234应该是(以空格开头) - > ABCD-1234

ABCD XX1234应该是 - > ABCD-XX1234

ABCD - Z1234应该是 - > ABCD-Z1234

ABCDTE ST QA1234应该是 - > ABCD-QA1234

A-BCD 1234 ABCD-1234

另外,如果可能的话,我需要将它集成到上面的相同功能中。

ABCDE-GHI491803应为WXYZ-491803

ABCDEFGH CT542021应为WXYZ-CT542021

1 个答案:

答案 0 :(得分:1)

对于某些要求,您可以为字符串编写扩展方法,例如:

public static class StringExtensions
{
    public static string FormatMyString(this string input)
    {
        input = Regex.Replace(input, @"-+", " ");
        return Regex.Replace(input, @"\s+", " ").Replace(" ", "-");
    }
}

然后在您的代码中,您可以按如下方式使用它:

var formatted = "ABCD-- 1234".FormatMyString();

但更换字母......我在那里看不到任何逻辑......你有多少啤酒?