使用 ~ 分割字符串时出现问题

我正在尝试在 C# 中使用波浪号字符拆分字符串


我的字符串是:“~ALLERGIST~~ALLERGIST345~添加专业~ALLERGIST”


我的代码如下:


    string spl="~ALLERGIST~~ALLERGIST345~Add Specialty~ALLERGIST"

    if (Convert.ToString(spl).Contains("~"))

    {

        string s = Convert.ToString(spl);

        var elements = s.Split(new[] { '~' }, System.StringSplitOptions.RemoveEmptyEntries);

        foreach (string items in elements)

        {

            cmb.Items.FindItemByValue(items).Checked = true;

        }

    }

分裂后我得到结果。

  1. 过敏症专家

  2. 过敏症专家345

  3. 添加专业

  4. 过敏症专家

相反,结果应该是:

  1. ~过敏症专家

  2. 〜过敏症专家345

  3. 添加专业

  4. 过敏症专家


慕无忌1623718
浏览 110回答 1
1回答

当年话下

我们可以通过正则表达式分割来处理这个问题,它在波浪号上分割,~而前面没有另一个波浪号。这种拆分逻辑意味着初始~不会导致拆分(因此~ALLERGIST显示为第一个输出项),并且也会~~ALLERGIST345生成~ALLERGIST345该项。string input = "~ALLERGIST~~ALLERGIST345~Add Specialty~ALLERGIST";var items = Regex.Split(input, @"(?<=[^~])~");foreach(var item in items){&nbsp; &nbsp; Console.WriteLine(item.ToString());}这打印:~ALLERGIST~ALLERGIST345Add SpecialtyALLERGIST
打开App,查看更多内容
随时随地看视频慕课网APP