使用任意或所有分隔符之一按单词拆分字符串

本文关键字:单词 拆分 字符串 分隔符 任意 | 更新日期: 2023-09-27 17:56:22

我可能刚刚到了我想太多的地步,但我想知道:有没有办法指定一个应该被视为分隔符的特殊字符列表,然后使用该列表拆分字符串?例:

"battlestar.galactica-season 1"

应返回为

battlestar galactica season 1

我在想正则表达式,但我现在有点慌张,盯着它看了太久。

编辑:谢谢大家证实我怀疑我想多了,哈哈:这是我最终得到的:

//remove the delimiter
            string[] tempString = fileTitle.Split(@"'/.-<>".ToCharArray());
            fileTitle = "";
            foreach (string part in tempString)
            {
                fileTitle += part + " ";
            }
            return fileTitle;

我想我也可以用" "空格替换分隔符...计时器一到,我就会选择一个答案!

使用任意或所有分隔符之一按单词拆分字符串

内置的

String.Split 方法可以将字符集合作为分隔符。

string s = "battlestar.galactica-season 1";
string[] words = s.split('.', '-');

标准的拆分方法可以为您做到这一点。 它需要一个字符数组:

public string[] Split(
    params char[] separator
)

你可以调用split的重载:

myString.Split(new char[] { '.', '-', ' ' }, StringSplitOptions.RemoveEmptyEntries);

char 数组是要拆分的分隔符列表。

"battlestar.galactica-season 1".Split(new string[] { ".", "-" }, StringSplitOptions.RemoveEmptyEntries);

这可能不完整,但像这样。

string value = "battlestar.galactica-season 1"
char[] delimiters = new char[] { ''r', ''n', '.', '-' };
    string[] parts = value.Split(delimiters,
                     StringSplitOptions.RemoveEmptyEntries);
    for (int i = 0; i < parts.Length; i++)
    {
        Console.WriteLine(parts[i]);
    }

您是尝试拆分字符串(制作多个字符串),还是只想用空格替换特殊字符,正如您的示例也可能建议的那样(制作 1 个更改的字符串)。对于第一个选项,只需查看其他答案:)

如果要替换,可以使用

string title = "battlestar.galactica-season 1".Replace('.', ' ').Replace('-', ' ');

有关更多信息,您可以通过简单的示例拆分,您可能会看到以下 URL:

这还包括单词拆分(多个字符)。C# 拆分函数说明