0

我在 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)

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

4

2 回答 2

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)
于 2012-04-19T19:38:37.387 回答
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>)

于 2012-04-19T23:22:18.720 回答