查找并替换ASP Classic

时间:2012-04-19 19:13:03

标签: regex asp-classic vbscript

我在ASP VB中有一个功能。我需要替换它中的确切单词。例如,我有一个像“羊毛|丝绸/羊毛|丝绸”的字符串。我想要更换真丝而不是丝绸/羊毛。

' "|" 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)

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

2 个答案:

答案 0 :(得分:2)

你应该在你去的时候建立一个新的字符串

' "|" 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)

答案 1 :(得分:0)

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

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

太糟糕了,你已经接受了另一个答案8&gt;)