gpt4 book ai didi

c# - Regex.Split() 句子到单词同时保留空格

转载 作者:太空狗 更新时间:2023-10-29 23:02:10 24 4
gpt4 key购买 nike

我正在使用 Regex.Split() 获取用户输入并将其转换为列表中的单个单词,但目前它删除了他们添加的任何空格,我希望它保留空白。

string[] newInput = Regex.Split(updatedLine, @"\s+");

最佳答案

string text = "This            is some text";
var splits = Regex.Split(text, @"(?=(?<=[^\s])\s+)");

foreach (string item in splits)
Console.Write(item);
Console.WriteLine(splits.Count());

这将为您提供 4 个拆分,每个拆分都保留所有前导空格。

(?=\s+)

表示从前面有空格的点开始分割。但是,如果您单独使用它,它将在示例文本上创建 15 个拆分,因为在重复空格的情况下,每个空格后跟另一个空格。

(?=(?<=[^\s])\s+)

这意味着从前面有非空格字符且前面有空格的点拆分。

如果文本从一个空格开始,并且您希望在没有文本的情况下在第一个拆分中捕获它,那么您可以将表达式修改为以下

(?=(?<=^|[^\s])\s+)

这意味着一系列空格需要在它之前或字符串的开头有一个非空格字符。

关于c# - Regex.Split() 句子到单词同时保留空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8204291/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com