Skip to main content
 首页 » 编程设计

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

2024年02月27日42zhoujg

我正在编写一个将文本转换为 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)

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

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