gpt4 book ai didi

c# - c#中的句子大小写格式

转载 作者:太空宇宙 更新时间:2023-11-03 23:35:33 25 4
gpt4 key购买 nike

我想改变“句子大小写”中字符串的大小写。我用过这个功能:

private string toSentenceCase(string sourcestring)
{
var lowerCase = sourcestring.ToLower();

lowerCase = Regex.Replace(lowerCase, @"(\r\n|\n\r|\n|\r)", "\r\n");
var r = new Regex(@"(^[a-z])|[?!.\r\n]\s+(.)", RegexOptions.Multiline | RegexOptions.ExplicitCapture);
var result = r.Replace(lowerCase, s => s.Value.ToUpper());

return result;
}

用我的正则表达式我想捕获穿刺'。','?','!'还有 '\n' 和 '\r'。我的代码有效,除非句子之间没有“空白”字符。例如“第一个例子。有空白。”变成“第一个例子。有空白。”但“第二个例子。有空白。”仍然是“第二个例子。有空白。”

关于如何更改我的正则表达式以捕获第二个示例的任何想法?

最佳答案

只需将 \s+ 转换为 \s*,因为 \s+ 必须期待一个空格字符,其中 \s*不会。

var r = new Regex(@"(^[a-z])|[?!.\r\n]\s*(.)", RegexOptions.Multiline | RegexOptions.ExplicitCapture);

var r = new Regex(@"(?:^|[?!.\r\n])\s*([a-z])", RegexOptions.Multiline | RegexOptions.ExplicitCapture);

关于c# - c#中的句子大小写格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30710533/

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