我有这样的文字:
LINE \ r \ n 5 \ r \ n11DA3 \ r \ n330 \ r \ n2 \ r \ n100 \ r \ n \ 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 +?)是问题所在。有什么方法可以解决吗?
答案 0 :(得分: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 \ n \ n \ r \ n100 。如果您想要更具体的更改,请告诉我。
答案 1 :(得分:0)
如果可移动内容为静态,则可以使用
s.Replace("11DA3\r\n330\r\n2" ,100);
甚至你可以尝试使用string.indexof