C# 是否有IndexOf(任何白色字符,startIndex)这样的东西?

C# 是否有IndexOf(任何白色字符,startIndex)这样的东西?,c#,regex,indexof,C#,Regex,Indexof,空白字符是单个空格、制表符、回车符和新行。要检测这些,请使用以下正则表达式:\s 我的问题是:有没有一种方法可以让我使用一个IndexOf语句来返回任何空白字符的索引 //works int index = richTextBox1.Text.IndexOf(' ', 0); int index = richTextBox1.Text.IndexOf('\n', 0); //doesn't work int index = richTextBox1.Text.IndexOf('\\s', 0)

空白字符是单个空格、制表符、回车符和新行。要检测这些,请使用以下正则表达式:\s

我的问题是:有没有一种方法可以让我使用一个IndexOf语句来返回任何空白字符的索引

//works
int index = richTextBox1.Text.IndexOf(' ', 0);
int index = richTextBox1.Text.IndexOf('\n', 0);

//doesn't work
int index = richTextBox1.Text.IndexOf('\\s', 0);
int index = richTextBox1.Text.IndexOf("\\s", 0);
“\S”会导致一个错误,即字符太多而“\S”最终在字符串中查找\S而只是在“天堂”中查找。我不介意检查每种类型,但如果有更好的方法,请让我知道。 谢谢。

将为您获取数组中任何字符的第一个字符所在字符串的索引

诀窍在于定义什么是“空白”。下面的示例有25个定义为空白的字符,更常见的是
,'\n','\t','\v','\r'
。下面将使用unicode定义和
char.IsWhitespace
来确定有哪些空白字符

public static void Main()
{
    var wsChars = Enumerable.Range(0, ushort.MaxValue)
                            .Where(c => char.IsWhiteSpace(Convert.ToChar(c)))
                            .Select(c => Convert.ToChar(c)).ToArray();

    Console.WriteLine(wsChars.Length);

    var someText = "This_is_a\tstring with \nsome whitespace characters.";

    Console.WriteLine(someText.IndexOfAny(wsChars));
}

如果要从特定索引开始,只需使用提供起始索引。

将获取字符串的索引,其中数组中任何字符的第一个字符将出现

诀窍在于定义什么是“空白”。下面的示例有25个定义为空白的字符,更常见的是
,'\n','\t','\v','\r'
。下面将使用unicode定义和
char.IsWhitespace
来确定有哪些空白字符

public static void Main()
{
    var wsChars = Enumerable.Range(0, ushort.MaxValue)
                            .Where(c => char.IsWhiteSpace(Convert.ToChar(c)))
                            .Select(c => Convert.ToChar(c)).ToArray();

    Console.WriteLine(wsChars.Length);

    var someText = "This_is_a\tstring with \nsome whitespace characters.";

    Console.WriteLine(someText.IndexOfAny(wsChars));
}


如果您想从特定索引开始,只需使用提供起始索引。

正则表达式:\s如果您知道这一点,为什么不使用正则表达式???您可以与可能的空白字符的字符数组一起使用。当答案关闭时,我正在发布答案,但是在DotNetFiddle上。很抱歉TaW和Camilo,但我对IndexOf特别感兴趣,所以我不确定为什么我会丢一分。我在寻找答案/主题的索引。因此,感谢您@RonBeyer的回答。我会检查一下我们的即时正则表达式:\s如果你知道的话,为什么不使用正则表达式???你可以使用可能的空白字符的字符数组。我正在发布答案的过程中,它关闭了,但在DotNetFiddle上。很抱歉TaW和Camilo,但我对IndexOf特别感兴趣,所以我不确定为什么我丢了一分。我在寻找答案/主题的索引。因此,感谢您@RonBeyer的回答。我马上查一下