C# 如何将文本拆分为具有特定字符串的段落
我有一个很长的文本文件。。。我读取文本文件并将内容存储在字符串中。。。 现在,我要拆分此文本。下面是一张我想要的图片。 在图像中,这是公共文本意味着该字符串在每个段落中都是公共的 绿色方块表示我想要字符串数组中的那个部分。 但是如何做到这一点。。。我已经为此尝试了正则表达式。。。但它不起作用。。。。C# 如何将文本拆分为具有特定字符串的段落,c#,regex,C#,Regex,我有一个很长的文本文件。。。我读取文本文件并将内容存储在字符串中。。。 现在,我要拆分此文本。下面是一张我想要的图片。 在图像中,这是公共文本意味着该字符串在每个段落中都是公共的 绿色方块表示我想要字符串数组中的那个部分。 但是如何做到这一点。。。我已经为此尝试了正则表达式。。。但它不起作用。。。。 请帮助我不确定您要拆分什么,但您可以使用 string[] stringArray = Regex.Split(yourString, regex); 如果您想要一个更具体的示例,您必须像其他人
请帮助我不确定您要拆分什么,但您可以使用
string[] stringArray = Regex.Split(yourString, regex);
如果您想要一个更具体的示例,您必须像其他人提到的那样为我们提供更多关于文本外观的信息,而不仅仅是普通文本。尝试使用正则表达式。使用此模式拆分:
(.*This is common text.*)
嗯,将RegEx置于字符串函数之上总是会导致性能开销
如果您使用:未经测试,这将非常好,但它会给您一个想法
string[] lines = IO.File.ReadAllLines("FilePath")
List<string> lst = new List<string>();
List<string> lstgroup = new List<string>();
int i=0;
foreach(string line in lines)
{
if(line.Tolower().contains("this is common text"))
{
if(i > 0)
{
lst.AddRange(lstgroup.ToArray());
// Print elements here
lstgroup.Clear();
}
else { i++; }
continue;
}
else
{
lstgroup.Add(line)
}
}
i = 0;
// Print elements here too
您能回答这个问题吗?这是一个普通文本\s*[^这是一个普通文本].*?\s*这是一个普通文本这几乎不足以让我们猜测您试图匹配的文本的结构。请解释如何准确地确定匹配的开始位置、可能包含的内容、不包含的内容以及结束位置。正如我当时所说,我/我们需要的不仅仅是普通文本。这样我们就知道该在什么问题上分道扬镳了。