【问题标题】:Find and Replace with ASP Classic使用 ASP Classic 查找和替换
【发布时间】:2012-04-19 19:13:02
【问题描述】:

我在 ASP VB 中有一个函数。我需要替换其中的确切单词。例如,我有一个类似“wool|silk/wool|silk”的字符串。我只想替换丝绸而不是丝绸/羊毛。

' "|" is a devider
cur_val = "wool|silk/wool|silk"
cur_val_spl = Split("wool|silk/wool|silk", "|")
key_val = "silk"
For Each i In cur_val_spl
    If i = key_val Then
        cur_val = Replace(cur_val, ("|" & i), "")
        cur_val = Replace(cur_val, i, "")
    End If
Next
Response.Write(cur_val)

在这种情况下,我的结果将是“羊毛/羊毛”,但我真正想要的是“羊毛|丝绸/羊毛”。
我真的很感激任何帮助。

【问题讨论】:

    标签: regex asp-classic vbscript


    【解决方案1】:

    你应该建立一个新的字符串

    ' "|" is a devider
    cur_val = "wool|silk/wool|silk"
    cur_val_spl = Split("wool|silk/wool|silk", "|")
    result = ""
    key_val = "silk"
    
    addPipe = false
    For Each i In cur_val_spl
        If i <> key_val Then
            if addPipe then
                result = result & "|"
            else 
               addPipe = true
            end if
            result = result & i
        End If
    Next
    
    Response.Write(result)
    

    【讨论】:

    • 老实说,我找到了这样做的方法,但他们写的方式更干净。非常感谢。
    【解决方案2】:

    你可以用正则表达式来做,但这更短

    cur_val = "wool|silk/wool|silk"
    Response.Write left(mid(replace("|"&cur_val&"|","|wool|","|silk|"),2),len(cur_val))
    '=>silk|silk/wool|silk
    

    可惜你已经接受了另一个答案 8>)

    【讨论】:

    • 感谢彼得的帮助。另一个答案更清楚,更重要的是在我的职能中起作用。无论如何,我们都应该在这里学到一些东西。
    猜你喜欢
    • 1970-01-01
    • 2014-09-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-22
    • 2020-08-05
    • 2011-03-02
    • 2012-02-02
    • 1970-01-01
    相关资源
    最近更新 更多