您好,匿名用户
随意问技术百科期待您的加入

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

0 投票

问题

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

说明:被替换的文件是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
用户头像 提问 2012年 12月1日 @ Pantheon 上等兵 (388 威望)
分享到:

你的回答

隐私保护: 您的邮箱仅用于发送系统通知。
请输入验证码:
    图片验证码看不清?
登录注册后不会被要求输入验证码。

提一个问题:

相关问题

0 投票
1 回复 18 阅读
用户头像 提问 2014年 3月4日 @ Vergil 上等兵 (384 威望)
0 投票
1 回复 40 阅读
用户头像 提问 2012年 12月1日 @ Ashe 上等兵 (336 威望)
0 投票
1 回复 44 阅读
0 投票
1 回复 33 阅读
用户头像 提问 2012年 12月1日 @ Cassiopeia 上等兵 (317 威望)

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...