繁体   English   中英

正则表达式在C#中匹配和拆分字符串

[英]Regex match and split string in C#

我有以下格式的ASCII文件:

[section heading]
paragraphs......

[section heading]
paragraphs......
...

注意:标题文本始终以某些特定模式括起来(例如,上例中的[ ]

我想将文件分成单独的部分(每个部分都有标题内容 )。

解析以上文档的最有效方法是什么?

使用Regex.Match()我可以提取标题,但不能提取后续文本内容。

使用Regex.Split()可以获取内容,但不能获取相关的标题。

是否可以将这两个Regex方法结合使用来解析文档? 是否有更好的方法可以达到相同目的?

尝试这个:

string search = "\[([\w ]+)\]([^\[]*)";
foreach (Match match in Regex.Matches(yourtext, search))
    {
        string heading = match.Groups[1];
        string text = match.Groups[2];
    }

正则表达式同时捕获标题段落。 多亏了捕获组(在括号之间),您可以通过遍历匹配项来提取它们。

(\[[^\]]*\])\n([\s\S]*?)(?=\n\[|$)

您可以试试看。获取第1组和第2组的信息。

https://regex101.com/r/gU4aG0/1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM