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 - ANYTHING HERE - \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 回答