【问题标题】:ASP Classic - Find in long string and removeASP Classic - 在长字符串中查找并删除
【发布时间】:2016-01-12 15:57:19
【问题描述】:

我需要在一个很长的字符串中找到一些文本,并删除开头和结尾。

示例:[proimg:thisisaimage.jpg]这是我[/proimg]

好的,现在。我需要的只是图像本身。这张图片.jpg

不是其他的东西。

我可以查找和替换,我测试过,它会查找和替换。

<%txt = ReplaceChar("[proimg:")
response.Write replace(txt, "proimg","MyImg")%>

但是如何只获取图像?

有什么想法吗?

谢谢

【问题讨论】:

    标签: vbscript asp-classic


    【解决方案1】:

    假设[img: 是常量,从它的左边开始读取6 个字符直到下一个|

    pos = instr(str, "[img:")
    str = mid(str, pos + 5, instr(pos, str, "|") - (pos + 5))
    

    【讨论】:

    • 感谢您的尝试。它是一个很长的字符串,所以可能有 50 或 1,000 个字符,而这个对象在它的中间...所以,很遗憾,您提供的代码在这种情况下将不起作用...
    • 编辑以在任何地方找到[img:
    • 如果你能做到找到[img:标签,那么它可能会工作..?
    • 我收到此错误。无效的过程调用或参数:'Mid'
    • 如果有另一个会发生 |在 img 之前,固定在上面。
    【解决方案2】:

    我不知道 vbscript 但根据文档这应该可以工作

    split1 = Split(str,'|',1) 
    split2 = Split(split1(0),':')
    txt = split2(1)
    

    【讨论】:

    • 我的代码出错了,所以 |不存在。它是一个] 请再看一下我原来的帖子的代码。
    • 图片后面的 ] 是字符串中出现的第一个吗?如果是这样,您只需替换 split1 = Split(str,']',1)
    • 感谢 lyz,但我能够从另一个来源获得完成这项工作的代码。请查看我发布的答案。请注意并感谢您的帮助。
    【解决方案3】:

    我从另一个站点获得了帮助。这是一个工作代码,我已经针对一个超过 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>
    

    【讨论】:

      【解决方案4】:

      如果您有两个设置在图像名称之前和之后的参数并且是常量,那么这可能对您有用。 我使用这种类型的脚本从会话 cookie 中提取 cookie 数据(仅限 http)

      使用您的示例:[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
      

      只要你有一个固定的起点和终点,你可以提取而不是替换,我已经在很长的查询字符串上使用了它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-10-14
        • 1970-01-01
        • 2019-03-27
        • 1970-01-01
        • 2021-02-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多