正则表达式,如何替换两个标志行之间的N行?

1943
  • 2
新手上路,请多包涵

问题

需要一个正则表达式用于替换输入字符(或者文件)中两个标志之间的个行。

说明:被替换的文件是Inno安装程序的[Files]块的内容,类似于Ini文件的格式。

请帮忙确认

exp.Pattern = "(;ReplaceBeginMark;)([.\r\n]*$)(;ReplaceEndMark;)"

的内容,谢谢!

VBS脚本代码如下,

'
' 文件:upfile.vbs
' 说明:更新 iss文件的 Files块
' 
'

Entry

Sub Entry()
	Const ForReading = 1, ForWriting = 2, ForAppending=8
	
	Dim issFile
	Dim tempstr
	
	filename="rel.iss"
	
	' 读取文件
	'tempstr = ReadAll(filename)
	
	'源字符串,需要替换掉ReplaceBeginMark所在行到ReplaceEndMark所在行中间的所有行
	tempstr="[Files]" & vbCrLf & ";ReplaceBeginMark;" & vbCrLf & ";Source: E:\Dev\Client\App.exe; DestDir: {app};" & vbCrLf & ";ReplaceEndMark;" & vbCrLf
	
	'MsgBox "源:" & vbCrLf & tempstr
	Dim exp
	
	' 正则查找
	Set exp = New RegExp
	exp.Global = True
	exp.Pattern = "(;ReplaceBeginMark;)([.\r\n]*$)(;ReplaceEndMark;)"
	
	
	If exp.test(tempstr) Then
		MsgBox "匹配!"
	Else 
		MsgBox "没有找到"
	End If
	
End Sub
回复
阅读 4.5k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏