c#用多个分隔符拆分字符串

本文关键字:拆分 字符串 分隔符 | 更新日期: 2023-09-27 18:03:28

user1;user2;user3;user4 user1

我想拆分这些字符串,这样我就可以遍历它们,将它们放入对象中。我想我可以用

myString.split(";")

然而,在第二个例子中,没有;,所以这行不通。当它可以像这样变化时,最好的方法是什么?

谢谢

c#用多个分隔符拆分字符串

你可以使用重载接受多个分隔符:

myString.Split(new[] { ";", " " }, StringSplitOptions.RemoveEmptyEntries);

不需要正则表达式。split方法可以接受一个分隔符列表

"user1;user2;user3;user4 user1".Split(';', ' ')

输出
string[5] { "user1", "user2", "user3", "user4", "user1" }

可以使用正则表达式

"[ ;]"

方括号定义了一个字符类 -匹配方括号之间的一个字符。

您可以使用重载Split()方法,它接受一个数组的分隔符

string myString = "user1;user2;user3;user4 user1";
string[] stringSeparators = new string[] { ";", " " };
string[] s = myString.Split(stringSeparators, StringSplitOptions.None);

以下测试通过!

    [TestCase("user1;user2;user3;user4 user1", 5)]
    public void SplitString(string input, int expectedCount)
    {
        Assert.AreEqual(expectedCount, input.Split(new []{";"," "},StringSplitOptions.RemoveEmptyEntries));
    }