c# - .NET正则表达式: Get paragraphs

标签 c# regex paragraphs

我正在尝试使用正则表达式从 C# 中的字符串中获取段落。 按段落;我的意思是以两个或多个\r\n 结尾的字符串 block 。 (不是 HTML 段落

)...

这里是一个示例文本:

For example this is a paragraph with a carriage return here
and a new line here.

At this point, second paragraph starts. A paragraph ends if double or more \r\n is matched or
if reached at the end of the string ($).

我尝试了该模式:

Regex regex = new Regex(@"(.*)(?:(\r\n){2,}|\r{2,}|\n{2,}|$)", RegexOptions.Multiline);

但这不起作用。它匹配以单个\r\n 结尾的每一行。我需要的是获取所有字符,包括单回车符和换行符,直到达到双\r\n。

最佳答案

.* 是贪婪的并且尽可能多地消耗。您的第二组 () 有一个 $,因此正在使用的表达式是 (.*)(?)。为了让.*不被贪婪,后面跟一个?.

当您指定 RegexOptions.Multiline 时,.NET 将按换行符分割输入。使用 RegexOptions.Singleline 使其将整个输入视为一个。

Regex regex = new Regex(@"(.*?)(?:(\r\n){2,}|\r{2,}|\n{2,}|$)", RegexOptions.Singleline);

关于c# - .NET正则表达式: Get paragraphs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3614760/

相关文章:

c# - 在C#中监视垃圾收集器

c# - Python或C#中的项目构想

c# - 如何清除通用 Windows 平台应用程序中的证书缓存?

java - 如何使用正则表达式匹配字符串

android - 如何在 Activity 中给出段落?

html - 使用 CSS3 分别格式化段落

c# - 使用非相邻列中的数据在 C# 中创建 Excel 图表

javascript - 匹配字符但不匹配前面有

javascript - YouTube 视频能否仅由数字组成,如果可以,如何匹配不仅由数字组成的字符串?

html - 段落样式不会接受自定义 CSS 管理器,但可以在开发人员中使用