ASP 经典 - 在长字符串中查找并删除
ASP Classic - Find in long string and remove
我需要在一个很长的字符串中找到一些文本,并删除开头和结尾。
示例:[proimg:thisisaimage.jpg]这就是我[/proimg]
好的,现在。我需要的只是图像本身。 thisisaimage.jpg
不是其余的东西。
我可以找到并替换,我测试过,它会找到并替换。
<%txt = ReplaceChar("[proimg:")
response.Write replace(txt, "proimg","MyImg")%>
但是如何只获取图像?
有什么想法吗?
谢谢
假设[img:
是常量,从左边开始读6个字符直到下一个|
pos = instr(str, "[img:")
str = mid(str, pos + 5, instr(pos, str, "|") - (pos + 5))
我不知道 vbscript,但根据文档,这应该可以工作
split1 = Split(str,'|',1)
split2 = Split(split1(0),':')
txt = split2(1)
我从另一个站点获得了帮助。这是一个有效的代码,我已经针对一个超过 10,000 个字符的页面进行了测试和 运行,并且效果非常好!
<!DOCTYPE html>
<html>
<body>
String search example from @delradie 12/1/2016
<br />
<br />
<%
Dim StartPosition
Dim EndPosition
Dim Output
Dim Input
Input = "[proimg:thisisaimage.jpg]this is me[/proimg]"
StartPosition = InStr(Input, "[proimg:")
If (StartPosition >= 0) Then
StartPosition = StartPosition + 8
EndPosition = InStr(StartPosition , Input, "]")
if(EndPosition > StartPosition) Then
Response.Write(Mid(Input, StartPosition , (EndPosition - StartPosition)))
Else
Response.Write("End Not Found")
End If
Else
Response.Write("Start Not Found")
End If
%>
</body>
</html>
如果您在图像名称前后设置了两个参数并且保持不变,这可能适合您。
我使用这种类型的脚本从会话 cookie 中提取 cookie 数据 (httponly)
用你的例子:[proimg:thisisaimage.jpg]这就是我[/proimg]
Dim str, j, strTemp
str = "[proimg:thisisaimage.jpg]this is me[/proimg]"
If InStr(str,"proimg:") Then
j = InStrRev(str,"proimg:")
If j > 0 Then
strTemp = Mid(str,j+7)
End If
j = InStr(strTemp,".jpg")
If j > 0 Then
strTemp = Left(strTemp,j-0)
End If
str = strTemp
End If
我已经在非常长的查询字符串上使用它,只要您有固定的起点和终点就可以提取而不是替换。
我需要在一个很长的字符串中找到一些文本,并删除开头和结尾。
示例:[proimg:thisisaimage.jpg]这就是我[/proimg]
好的,现在。我需要的只是图像本身。 thisisaimage.jpg
不是其余的东西。
我可以找到并替换,我测试过,它会找到并替换。
<%txt = ReplaceChar("[proimg:")
response.Write replace(txt, "proimg","MyImg")%>
但是如何只获取图像?
有什么想法吗?
谢谢
假设[img:
是常量,从左边开始读6个字符直到下一个|
pos = instr(str, "[img:")
str = mid(str, pos + 5, instr(pos, str, "|") - (pos + 5))
我不知道 vbscript,但根据文档,这应该可以工作
split1 = Split(str,'|',1)
split2 = Split(split1(0),':')
txt = split2(1)
我从另一个站点获得了帮助。这是一个有效的代码,我已经针对一个超过 10,000 个字符的页面进行了测试和 运行,并且效果非常好!
<!DOCTYPE html>
<html>
<body>
String search example from @delradie 12/1/2016
<br />
<br />
<%
Dim StartPosition
Dim EndPosition
Dim Output
Dim Input
Input = "[proimg:thisisaimage.jpg]this is me[/proimg]"
StartPosition = InStr(Input, "[proimg:")
If (StartPosition >= 0) Then
StartPosition = StartPosition + 8
EndPosition = InStr(StartPosition , Input, "]")
if(EndPosition > StartPosition) Then
Response.Write(Mid(Input, StartPosition , (EndPosition - StartPosition)))
Else
Response.Write("End Not Found")
End If
Else
Response.Write("Start Not Found")
End If
%>
</body>
</html>
如果您在图像名称前后设置了两个参数并且保持不变,这可能适合您。 我使用这种类型的脚本从会话 cookie 中提取 cookie 数据 (httponly)
用你的例子:[proimg:thisisaimage.jpg]这就是我[/proimg]
Dim str, j, strTemp
str = "[proimg:thisisaimage.jpg]this is me[/proimg]"
If InStr(str,"proimg:") Then
j = InStrRev(str,"proimg:")
If j > 0 Then
strTemp = Mid(str,j+7)
End If
j = InStr(strTemp,".jpg")
If j > 0 Then
strTemp = Left(strTemp,j-0)
End If
str = strTemp
End If
我已经在非常长的查询字符串上使用它,只要您有固定的起点和终点就可以提取而不是替换。