0

たとえば、私はこれを持っています:

「だった?Wo war ich?Achja。<pa>">

以下のみを含む新しいテキストファイルを作成する必要があります。

だった?Wo war ich?Achja。

そして、私は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();


        }

しかし今、私は大きなファイル43mbxmlファイルでそれを作る必要があります。したがって、コンストラクターでは、すでにStreamReaderrを実行しました。そして文字列f; それから私はしました:

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

次に、上記のコードでこれを使用して、特定のテキストだけでなく、startTagとendTagの間の大きなファイル内のすべての文字列を抽出する必要があります。

次に、別の関数を作成する必要があるため、変更を加えた後、すべての抽出テキスト文字列を、startTagとendTagの間の以前の適切な場所に追加し直すことがわかります。

ありがとう。

4

2 に答える 2

0

正規表現を使用して HTML タグを削除する方法に関する同様の投稿があります。ここにリンクがあります。

そして、ここで微調整できる別のもの。

于 2012-04-24T05:44:55.267 に答える
0

次のアプローチでデータを抽出できます。

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;
于 2012-04-24T14:15:02.623 に答える