1

私はこの種のテキストを持っています:

LINE \ r \ n 5 \ r \ n11DA3 \ r \ n330 \ r \ n2 \ r \ n100 \ r \ nAcDbEntity \ r \ n 8 \ r \ n0-FD \ r \ n 6 \ r \ nHIDDEN \ r \ n100

太字のテキストを見てください。5 \ r\nと\r\n100の間のテキストを置き換えたいと思います。私はこのコードを試しました:

result[line] = Regex.Replace(result[line], @"((?<=5\r\n)(\S+?)(?=\r\n100))", "0");

しかし、それは機能しません。私のコードに何か問題がありますか?(\ S +?)が問題だと確信していました。それを解決する方法はありますか?

4

2 に答える 2

2

次のコードを使用できます。

string type_1 = "LINE\r\n 5\r\n11DA3\r\n330\r\n2\r\n100\r\nAcDbEntity\r\n 8\r\n0-FD\r\n 6\r\nHIDDEN\r\n100";            
string output = Regex.Replace (
    type_1,
    "5\r\n(.*?)\r\n100",
    "5\r\n0\r\n100",
    RegexOptions.Singleline|RegexOptions.Compiled
);
Console.WriteLine (output);

出力:

LINE
 5
0
100,1
AcDbEntity
 8
0-FD
 6
HIDDEN
100

これにより、テキストのすべての遭遇が5 \ r\n-ここにあるもの-\r\n100から5\r \ n0 \ r\n100に変更されます。より具体的な変更が必要な場合は、お知らせください。

于 2012-07-13T10:15:44.787 に答える
0

取り外し可能なコンテンツが静的である場合は、次を使用できます

s.Replace("11DA3\r\n330\r\n2" ,100);

または、string.indexofで試すこともできます

于 2012-07-13T09:52:47.943 に答える