回 帖 发 新 帖 刷新版面

主题:删除字符串中“[”和“]”这间所有的字符时出现的问题

比如下面定义s变量,想要删除其中带[....]的所有字符包括[],我写了下面代码,运行后结果却总是这样:“s: 02:00.00]词曲:谢军”。也就是前几个还能删除,到后面就不行了,请高手看看到底问题出在那???
<%
s="[ti:做你的爱人] [ar:饶天亮] [al:做你的爱人] [by:E-Lyric] [offset:1500] [00:02.00][02:00.00]词曲:谢军 "
do while(true)
a=instr(s,"[")
b=instr(s,"]")
if a>0 and b>0 and b>a then
    c=mid(s,a,b)
    s=replace(s,c,"")
else
    exit do
end if
loop
response.write "s:"&s&"<br>"
%>

回复列表 (共5个回复)

沙发

c=mid(s,a,b)
换成
c=mid(s,a+1,b)
试试

板凳

谢谢1楼的朋友,改成c=mid(s,a+1,b)肯定不行,我还试过b+1,也不行
多年的编程竟然对这个问题束手无策.

3 楼

我等了一天了,给别人解决了不少问题,自己的问题怎么没人来解决,这个很难吗????
其实我就是从数据库提取出的字符串,数据库中放的是lrc歌词,都带[]标记,我现在想只要歌词,把[]标记内容全删了,可是想不出别的办法 ,我的办法就是删到最后就由几处删不了,
这个问题在这解决 不了只好到别处去问了.

4 楼

走了,带着问题走了,高手们都过年去了,我也得准备过年.

5 楼

到别处一问就得到了答案,特意回来 说明:
dim s 
s="[ti:做你的爱人] [ar:饶天亮] [al:做你的爱人] [by:E-Lyric] [offset:1500] [00:02.00][02:00.00]词曲:谢军 " 

s = ReplaceStr(s,"(\[.+?\])","") 

Function ReplaceStr(Str,Pattern,tostr) 
     If IsNull(Str) Then 
           ReplaceStr = Str 
           Exit Function 
     End IF 
     ReplaceStr = False 
     'Str = Trim(Str) 
     Dim RegEx 
     Set RegEx = New RegExp 
     RegEx.Pattern = Pattern 
     RegEx.IgnoreCase = True 
     regEx.Global = True 
       ReplaceStr = regEx.Replace(Str, tostr) 
End Function 

alert "s:"&s&"<br>"

一切OK了,希望我的问题对网友们有用

我来回复

您尚未登录,请登录后再回复。点此登录或注册