gpt4 book ai didi

c# - C#中如何计算字符串中的段落数

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

我正在尝试计算 C# 中字符串中的段落数。

我将段落定义为一段文本,其各部分可以用换行符分隔。段落必须由两个或多个换行符分隔。所以:

This is a paragraph.Thisisaparagraph.This is a paragraph.

我的第一个想法是通过 \n\n 分隔字符串,然后计算部分,但是当有多个行间距分隔段落时,这不能正常工作,在文件的开头和结尾,或者文件只有一行。

如何通过正则表达式或其他方法准确获取字符串中的段落数?

最佳答案

您对段落的定义可以很容易地转换为正则表达式,以获得所有段落:

Regex.Matches(s, "[^\r\n]+((\r|\n|\r\n)[^\r\n]+)*")

[^\r\n]+ 表示非换行符的非零个数。 \r|\n|\r\n 是各种形式的换行符。基本上,对于一个段落,您需要交替使用它们。

我认为这是比查找段落分隔符更好的方法,因为查找段落分隔符需要太多的特殊情况才能给出正确的结果。

要将空行视为空行,您可以将“行”的定义从“非换行符的非零数量”更改为“任意数量的非换行符,后跟一个非空白字符,后跟任意数量的非换行符”。为简单起见,我算作空白的唯一不能作为换行符一部分的字符是空格字符,但您可能还想包括其他字符(例如制表符)。

Regex.Matches(s, "[^\r\n]*[^ \r\n]+[^\r\n]*((\r|\n|\r\n)[^\r\n]*[^ \r\n]+[^\r\n]*)*")

此外,这已经超出了我认为足够容易阅读的范围,因此可能需要进行一些重组,但我不确定最好的方法。

关于c# - C#中如何计算字符串中的段落数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23987032/

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