拆分包含单词的文本
本文关键字:文本 包含单 拆分 | 更新日期: 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
单词边界,因为这些单词边界需要句点后的单词字符。我想你不需要那个。