c# - 如何通过正则表达式识别文本中的段落?

标签 c# regex winforms

我正在编写一个将文本转换为 HTML 的软件,并且我还使用了正则表达式。我想知道如何识别正文中的段落? 我写了一段识别段落的代码,例如,在这篇文章中,它只是识别“我的”这个词。为了识别一个段落,我寻找前后有双空格的文本。

Hi

my name is radamal shera.

   private void btnConvert_Click(object sender, EventArgs e)
    {


        string inputText = txtInput.Text;   


       string pattern = @"(\r\n)([a-zA-Z]+)";

        Match result = Regex.Match(txtInput.Text, pattern);
        if (result.Success)
        {
            Debug.WriteLine("match : {0}", result.Value);
        }


    }

最佳答案

由于您计划在 2 个或更多换行符之间获取子字符串,您可以将 Regex.Split 与以下正则表达式一起使用:

(?:\r\n?|\n){2,}

参见 th regex demo

详细信息:

  • (?:\r\n?|\n){2,} - 出现 2 次或更多次 ({2,}):
    • \r\n? - CR 和一个可选的 LF
    • | - 或者
    • \n - 换行符 (LF)

enter image description here

要删除第一行,您可以使用它并拆分其余部分:

var pars = Regex.Split(s, @"^.*[\r\n]*|(?:\r\n?|\n){2,}")
  .Where(m => !string.IsNullOrEmpty(m))
  .ToList();

关于c# - 如何通过正则表达式识别文本中的段落?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43053986/

相关文章:

c# - 使用字符串将特定日期设置为 dateTimePicker

c# - 更改 DateTimePicker 的值

c# - 回历早了 1 天。

Java 中用于 SelectionKey、SelectableChannel 和 Selector 的 C# 类?

c# - 从引号中提取数据?

php - 查找字符串中重叠的所有子字符串

被 ""包围的字符串的java正则表达式

java - 使用模式从字符串中删除数字和字符

c# - "Access to path denied"问题

c# 如何将文本文件的行分成两等份,并在两个不同的列表框中显示