如何在整个文件上使用循环从文件中提取字符串文本

本文关键字:文件 循环 提取 文本 字符串 | 更新日期: 2023-09-27 18:32:00

例如,我有这个:

"是吗?哇?Ach ja.">

我需要创建一个新的文本文件,该文件将仅包含:

是?哇?哎呀。

我有一个像 43mb 这样的大文件,我需要扫描整个文件,只获取以 " 开头并以 <pa>" 结尾的位置,并获取此标签之间的字符串。

到目前为止,我做了这段代码:

private void retrivingTestText()
        {
            w = new StreamWriter(retrivedTextFile);
            string startTag = "'"";
            string endTag = "&lt;pa&gt;";
            int startTagWidth = startTag.Length;
            int endTagWidth = endTag.Length;
            string text = "'"Was? Wo war ich? Ach ja.&lt;pa&gt;'">";
            int begin = text.IndexOf(startTag);
            int end = text.IndexOf(endTag, begin + 1);
            string result = text.Substring(begin+1, end-1);
            w.WriteLine(result);
            w.Close();

        }

但是现在我需要在一个大文件 43mb xml 文件上制作它。所以在构造函数中,我已经做了流阅读器 r;和字符串 f;然后我做了:

r = new StreamReader(@"D:'New folder (22)'000004aa.xml")
f = r.ReadToEnd();

现在我需要将它与上面的代码一起使用,以提取 startTag 和 endTag 之间的大文件中的所有字符串,而不仅仅是特定文本。

第二件事我需要制作另一个函数,以便在我进行更改后,它将知道将所有提取文本字符串添加回 startTag 和 endTag 之间的正确位置

谢谢。

如何在整个文件上使用循环从文件中提取字符串文本

您可以采用以下方法来提取数据。

string word = "'"Was? Wo war ich? Ach ja<pa>'"Jain'"Romil<pa>'"";
string[] stringSeparators = new string[] { "<pa>'"" };
string ans=String.Empty;
string[] text = word.Split(stringSeparators, StringSplitOptions.None);
foreach (string s in text)
{
    if (s.IndexOf("'"") >= 0)
    {
        ans += s.Substring(s.IndexOf("'"")+1);
    }
}
return ans;

关于如何使用正则表达式删除 HTML 标签,也有类似的帖子。这是链接。

还有一个你可以调整的,在这里。