vbs中的正则表达式替换
现在有一个字符串。比如:str="aaaaa<br/>bbbbbbbb<br/><br/>cccccccccc"想替换的是单独的一个<br/>的替换成<br/><br/>...
现在有一个字符串。
比如:
str="aaaaa<br />bbbbbbbb<br /><br />cccccccccc"
想替换的是单独的一个<br />的替换成<br /><br />,如果有连续两个以上的,就不替换。就像这个字符串,只替换第一个,而第二、第三个就不用替换。
在线等,用vbs写。急用哈!
一楼的如果是<br />后面有一个“<”,就不行了。请补充一下! 展开
比如:
str="aaaaa<br />bbbbbbbb<br /><br />cccccccccc"
想替换的是单独的一个<br />的替换成<br /><br />,如果有连续两个以上的,就不替换。就像这个字符串,只替换第一个,而第二、第三个就不用替换。
在线等,用vbs写。急用哈!
一楼的如果是<br />后面有一个“<”,就不行了。请补充一下! 展开
4个回答
展开全部
【落vs寂】,你的vbs遇到更复杂的情况就不行了,不信丛伍你试试【溜须拍马关云野郑棚长】那串字符。【溜须拍马关云长】,你那个也有问题,你那串字符里面的<br /><br />会被替换为<br /><br /颂则><br />。
看看我滴(已验证,无论任何情况都能达到要求!):
str="a<br /><bb<br /><br /><br />ccc<br /><br /><br /><br />dddd<br />eeeee<br />ffffff<br />"
str = replace(str,"<br />","#")
mark = 0
for i = 1 to len(str)
if mid(str,i,1) = "#" then
mark = mark + 1
temp = temp & mid(str,i,1)
else
if mark = 0 then
temp = temp & mid(str,i,1)
elseif mark = 1 then
temp = temp & "#" & mid(str,i,1)
mark = 0
elseif mark > 1 then
temp = temp & mid(str,i,1)
mark = 0
end if
end if
next
if mark = 1 then
temp = temp & "#"
mark = 0
end if
str2 = replace(temp,"#","<br />")
msgbox str2
看看我滴(已验证,无论任何情况都能达到要求!):
str="a<br /><bb<br /><br /><br />ccc<br /><br /><br /><br />dddd<br />eeeee<br />ffffff<br />"
str = replace(str,"<br />","#")
mark = 0
for i = 1 to len(str)
if mid(str,i,1) = "#" then
mark = mark + 1
temp = temp & mid(str,i,1)
else
if mark = 0 then
temp = temp & mid(str,i,1)
elseif mark = 1 then
temp = temp & "#" & mid(str,i,1)
mark = 0
elseif mark > 1 then
temp = temp & mid(str,i,1)
mark = 0
end if
end if
next
if mark = 1 then
temp = temp & "#"
mark = 0
end if
str2 = replace(temp,"#","<br />")
msgbox str2
展开全部
刚学VBS的正则 正则可以做的
Dim str,s1,s2,s3
str="a<br /><bb<br /><br /><br />ccc<br /><br /><br /><br />dddd<br />eeeee<br />ffffff<br />"
Set regExx = New RegExp
regExx.Pattern = "<br /><br />"
regExx.IgnoreCase = True
regExx.Global = True
s1= regExx.replace(str,"<br /@><br /@>")
regExx.Pattern = "<br /@><耐扮br />"
s2= regExx.replace(s1,"<br /@><br /@>")
regExx.Pattern = "<br />"
s3=regExx.replace(s2,"<br /><br />")
regExx.Pattern = "<br /昌蚂灶物森@>"
str=regExx.replace(s3,"<br />")
MsgBox str
Dim str,s1,s2,s3
str="a<br /><bb<br /><br /><br />ccc<br /><br /><br /><br />dddd<br />eeeee<br />ffffff<br />"
Set regExx = New RegExp
regExx.Pattern = "<br /><br />"
regExx.IgnoreCase = True
regExx.Global = True
s1= regExx.replace(str,"<br /@><br /@>")
regExx.Pattern = "<br /@><耐扮br />"
s2= regExx.replace(s1,"<br /@><br /@>")
regExx.Pattern = "<br />"
s3=regExx.replace(s2,"<br /><br />")
regExx.Pattern = "<br /昌蚂灶物森@>"
str=regExx.replace(s3,"<br />")
MsgBox str
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
代码如下:(通过测试.....)
str="aaaaa<br />bbbbbbbb<br /升咐><br /><br />cccccccccc"
nums=len(str)
i=1
do
s1=instr(i,str,"<br />")
s2=s1+6
select case true
case s1=0
exit do
case s2>=nums
str=str&"<br />"
exit do
case mid(str,s2,6)<>"<br />" and i<>s1
str=replace (str,mid(str,s2,6),"橡游<br /吵如纯>" &mid(str,s2,6))
end select
i=s1+12
loop
wscript.echo str
str="aaaaa<br />bbbbbbbb<br /升咐><br /><br />cccccccccc"
nums=len(str)
i=1
do
s1=instr(i,str,"<br />")
s2=s1+6
select case true
case s1=0
exit do
case s2>=nums
str=str&"<br />"
exit do
case mid(str,s2,6)<>"<br />" and i<>s1
str=replace (str,mid(str,s2,6),"橡游<br /吵如纯>" &mid(str,s2,6))
end select
i=s1+12
loop
wscript.echo str
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<script language="vbScript">
<!--
str="aaaaa<br />bbbbbbbb<br /><旁渗br />cccccc<br />gfdgfdgfdgfd<br />cccc"
Set re = new RegExp
re.Pattern = "(<br />)[^<]"兆备
re.Global = true
re.IgnoreCase = true
str = re.Replace(str,"<br /><br />"运猜脊)
msgbox str
//-->
</script>
<!--
str="aaaaa<br />bbbbbbbb<br /><旁渗br />cccccc<br />gfdgfdgfdgfd<br />cccc"
Set re = new RegExp
re.Pattern = "(<br />)[^<]"兆备
re.Global = true
re.IgnoreCase = true
str = re.Replace(str,"<br /><br />"运猜脊)
msgbox str
//-->
</script>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询