我有一个包含以下内容的文本文件(内容变量为>10 MB),我希望将副本计数设置/替换为动态编号和。我也曾使用sed utiliy做过同样的操作,但它会显示comand提示。有没有使用C#/正则表达式的方法?
如何将已更改的模式写入文件中?
%-12345X@PJL职务名称= "Microsoft Word -Values.docx“@PJL OKIAUXJOBINFO DATA="ComputerName=USER-PC”@PJL OKIAUXJOBINFO DATA="UserName=user“@PJL OKIAUXJOBINFO DATA="PortName=PORTCUSTOM”@PJL OKIAUXJOBINFO DATA="ReceptionTime=22:04:09 2012/02/01“@PJL OKIAUXJOBINFO DATA="DocumentName=Microsoft Word - LDAPValues.docx”PJL OKIAUXJOBINFO DATA="MultiPage=1“@PJL OKIAUXJOBINFO DATA="ApplicationName=Microsoft Office”@PJL OKIAUXJOBINFO DATA=“ApplicationName=Microsoft”@PJL注释操作系统版本: Windows NT 6.1 Build 7600 @PJL注释产品名称: OKI PCL5c Printer @PJL注释设备名称: OKI @PJL注释版本: 1.0.5 @PJL注释构建日期: 2010/03/30 (Tue) 16:17:01 @PJL SET OKIPAPERSIZECHECK=ENABLE @PJL SET OKICUPAPERSIZECHECK=ENABLE @PJL SET MANUALFEED=OFF @PJL SET MANUALFEED=OFF @PJL SET OKIXDIMENSIONMILLIMETER=216 @PJL SET OKIYDIMENSIONMILLIMETER=280 @PJL SET MEDIASRCMANUAL=2 @PJL SET MEDIASRCINTRAY1=4 @PJL SET MEDIASRCINTRAY1=4 @PJL SET MEDIASRCINTRAY3=5 @PJL SET MEDIASRCINTRAY3=5 @PJL SET MEDIASRCINTRAY4=6 @PJL SET MEDIASRCINTRAY5=20 @PJL SET MEDIASRCINTRAY7=22 @PJL SET @PJL SET OKICUPAPERSIZECHECK=ENABLE@PJL SET OKICUPAPERSIZECHECK=ENABLE@PJL SET MANUALFEED=OFF@PJL SET OKIXDIMENSIONMILLIMETER=216@PJL SET OKIYDIMENSIONMILLIMETER=280@PJL SET MEDIASRCMANUAL=2@PJL SET MEDIASRCINTRAY1=4@PJL SET MEDIASRCINTRAY3=5@PJL SET MEDIASRCINTRAY5=20@PJL SET MEDIASRCINTRAY6=21 @PJL SET@PJL SET@PJL SET PJL/PJL MEDIASRCINTRAY7=22@PJL SET@PJL QTY=1
发布于 2012-02-01 18:09:34
这会找到"@PJL SET COPIES=“之后的数字。
(?<=@PJL\ SET\ COPIES=)\d+像这样使用它
Regex.Replace(text, @"(?<=@PJL\ SET\ COPIES=)\d+", newCount.ToString()); 我使用了Regex查找模式
(?<=prefix)find发布于 2012-02-01 18:09:20
看上去
Regex.Replace(
input,
@"COPIES=\d+",
string.Format("COPIES={0}", number),
RegexOptions.Multiline);会起作用的。
http://msdn.microsoft.com/en-us/library/taz3ak2f.aspx
将其写回文件中如下所示:
string input = File.ReadAllText("filename.txt");
string output = Regex.Replace(
input,
@"COPIES=\d+",
string.Format("COPIES={0}", number),
RegexOptions.Multiline);
File.WriteAllText("filename.txt", output);https://stackoverflow.com/questions/9100855
复制相似问题