【问题标题】:Split an irregular string into key-value pairs将不规则字符串拆分为键值对
【发布时间】:2016-01-18 13:26:37
【问题描述】:

我们的客户从应用程序中提交了一个字符串,我无法对其进行验证以限制发送此类字符串。因此,我正在尝试编写一个 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) 如何将任何输入转换为所需输出的明确规则和 (2) 一个问题?见Writing The Perfect Question
  • 否则只有反对票才会回答你。
  • 无限数量的猴子感谢您给他们这个机会来解决您的问题,因为他们可能会添加无限的可能性。然而遗憾的是,他们目前无法为您编写代码,因为他们正忙于开发他们的 Hamlet 版本。你做了什么研究?你试过什么?这些东西会帮助我们,猴子会帮助你。祝你好运! How do I ask a good question?

标签: c# string split


【解决方案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();

但是替换字母...我没有看到任何逻辑...你有多少啤酒?

【讨论】:

  • 大胡子人玩得很好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-12-13
  • 2021-10-27
  • 2020-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多