拆分包含单词的文本

本文关键字:文本 包含单 拆分 | 更新日期: 2023-09-27 18:19:38

我正在尝试将文本拆分为段落。拆分应该分别发生在包含以下单词INT.|EXT.|I/E的每一行的开头。

这是我使用的表达式:

string[] res = Regex.Split(text, "(?=^.+?INT[.]|^.+?EXT[.]|^.+?I/E[.])"RegexOptions.Multiline);

它运行得相当好,但当一行包含PRINT等单词时,它也会生成一个新段落。或TEXT。

如何修改REGEX表达式,使其与单词INT.EXT.I/E完全匹配?我试过

"(?=^.+?'bINT[.]'b|^.+?'bEXT[.]'b|^.+?'bI/E[.]'b)"

但这行不通。你知道我怎样才能精确匹配单词吗?

拆分包含单词的文本

在C#中,您需要使用逐字逐句的字符串文字来声明regexp,否则可能会遇到麻烦,比如这里,您将'b作为退格,而不是单词边界。

使用

@"(?=^.+?'bINT[.]|^.+?'bEXT[.]|^.+?'bI/E[.])"
^                ^            ^            ^

或者收缩了一点:

@"(?=^.+?'b(?:INT|EXT|I/E)[.])"

注意,我删除了文字句点后的'b单词边界,因为这些单词边界需要句点后的单词字符。我想你不需要那个。