c# - 正则表达式在包含单词的行的开头拆分

标签 c# regex wpf richtextbox flowdocument

每次一行包含某个单词时,我都试图将文本拆分为多个段落。我已经设法在该词的开头拆分文本,但不是在包含该词的行的开头。什么是正确的表达方式?

这是我的

 string[] paragraphs = Regex.Split(text, @"(?=INT.|EXT.)");

我还想丢失数组中的所有空段落。

这是输入

INT. LOCATION - DAY 
Lorem ipsum dolor sit amet, consectetur adipiscing elit. 

LOCATION - EXT.
Morbi cursus dictum tempor. Phasellus mattis at massa non porta. 

LOCATION INT. - NIGHT

我想将它拆分,保持相同的布局,但只是段落。

我得到的结果是

INT. LOCATION - DAY 
Lorem ipsum dolor sit amet, consectetur adipiscing elit. 

LOCATION - 

EXT.
Morbi cursus dictum tempor. Phasellus mattis at massa non porta. 

LOCATION 

INT. - NIGHT

新段落从单词而不是行开始。

这是想要的结果

第 1 段

INT. LOCATION - DAY 
Lorem ipsum dolor sit amet, consectetur adipiscing elit. 

第 2 段

LOCATION - EXT.
Morbi cursus dictum tempor. Phasellus mattis at massa non porta. 

第 3 段

LOCATION INT. - NIGHT

段落应始终从包含单词 INT 的行的开头开始。或分机。不是这个词。

最佳答案

Regex.Split(text, "(?=^.+?INT|^.+?EXT)", RegexOptions.Multiline);

检查这个文本场景

string text = "INT. LOCATION - DAY\n" +
                "Lorem ipsum dolor sit amet, consectetur adipiscing elit.\n" +
                "LOCATION - EXT.\n" +
                "Morbi cursus dictum tempor. Phasellus mattis at massa non porta.\n" +
                "LOCATION INT. - NIGHT\n";

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

            for (int i = 0; i < res.Count(); i++)
            {
                int lineNumber = i + 1;   
                Console.WriteLine("paragraph " + lineNumber + "\n"  + res[i]);
            }


#paragraph 1
#INT. LOCATION - DAY
#Lorem ipsum dolor sit amet, consectetur adipiscing elit.

#paragraph 2
#LOCATION - EXT.
#Morbi cursus dictum tempor. Phasellus mattis at massa non porta.

#paragraph 3
#LOCATION INT. - NIGHT

关于c# - 正则表达式在包含单词的行的开头拆分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30705320/

相关文章:

c# - 如何将 MySQL 数据返回到泛型类

python - 从维基百科获取链接

java - 在下一行中查找与正则表达式匹配的数字

wpf - 通过单击按钮更改 XAML 中某些内容的属性

C# 到 Java 重写——泛型类

c# - LINQ 到 XML : A query body must end with a select clause or a group clause

c# - 关闭 FileStream 会关闭 StreamReader 吗?

regex - OCaml 正则表达式在尝试使用转义字符时出现错误

c# - 使用 backgroundworker 手动停止调试

c++ - Windows 通用应用程序 (XAML) : textBlock->Text cannot be called with the given argument list