【问题标题】:how to split a text in to paragraph with a particular string如何使用特定字符串将文本拆分为段落
【发布时间】:2013-05-24 07:20:26
【问题描述】:

我有一个长文本文件...我读取了文本文件并将内容存储在一个字符串中... 现在我希望这个文本分裂。下面是一张显示我想要的图片。 图中“This is common text”表示该字符串在每个段落中都很常见。

绿色方块表示我想要字符串数组中的那部分。 但是怎么做...我已经为此尝试过正则表达式...但是没有用... 请帮忙

【问题讨论】:

  • 你能把你的尝试放在这个问题上吗?
  • (这是普通文字\s*[^这是普通文字].*?)\s*(这是普通文字)
  • 这些信息不足以让我们猜测您要匹配的文本的结构。请解释如何准确地确定匹配的开始位置、可能包含的内容、不得包含的内容以及结束的位置。

标签: c# regex


【解决方案1】:

尝试使用 RegEx.Split() 使用此模式:

(.*This is common text.*)

好吧,在string functions 之上提供priority to 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

【讨论】:

    【解决方案2】:

    我不确定你想分割什么,但你可以使用

    string[] stringArray = Regex.Split(yourString, regex); 
    

    如果您想要一个更具体的示例,您必须(正如其他人提到的那样)向我们提供有关文本外观的更多信息,而不仅仅是“普通文本”。

    【讨论】:

    • 正如我所说,我/我们需要的不仅仅是“普通文本”。所以我们知道要拆分什么。
    猜你喜欢
    • 2020-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-11
    • 2022-01-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多