我在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)
在这种情况下,我的结果将是“羊毛/羊毛”,但我真正想要的是“羊毛|丝绸/羊毛”。
我非常感谢任何帮助。
答案 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;)