经典asp中的拆分字符串

时间:2013-04-17 11:32:09

标签: string asp-classic

我正在使用经典ASP,并且有一个字符串如下:

一个

ç

现在我要分割字符串,我尝试过vbCrLf,vbNewline,vblf和
但没有一个能够工作。

请建议我拆分字符串的替代方法。我处境不好。

2 个答案:

答案 0 :(得分:4)

您确定,字符串中有换行符吗?

首先,您可以输出所有字符代码以找出要分割的字符:

dim i, c

for i = 1 to len(my_string)
    c = mid(my_string, i, 1)
    Response.Write "CHAR: " & ASC(c) & " = " & c
next

然后你有两个选择:

  1. 如果您可以拆分一个字符(例如char char 10),则可以使用:

    a_result = split(my_string, CHR(10))
    
  2. 您可以使用正则表达式匹配从字符串中获取值。这是一个很大的开销,但如果所有其他方法都失败了,那么你可以这样做:

    function findStrings(s_text, s_pattern)
            dim a_out, obj_regex, obj_matches
            dim obj_match, n_index
            set obj_regex = New RegExp
    
            obj_regex.IgnoreCase = true
            obj_regex.Global = true
            obj_regex.MultiLine = true
            obj_regex.Pattern = s_pattern
            set obj_matches = obj_regex.execute(s_text)
            if obj_matches.Count>0 then
                    redim a_out(obj_matches.Count-1)
                    n_index = 0
                    for each obj_match in obj_matches
                            a_out(n_index) = cvStr(obj_match.Value)
                            n_index = n_index + 1
                    next
            end if
            findStrings = a_out
            set obj_regex = Nothing
    end function
    
    a_result = findStrings(my_string, "\w+")
    
  3. 这假设您正在寻找的字符串中没有空格。

答案 1 :(得分:2)

这种情况比你想象的更频繁,你需要首先删除vbcr然后只替换vblf并忘记在vbcrlf上拆分因为它不适用于100%的用户环境。

A
B
C

' assuming about is in the variable str

split(replace(str,vbcr,""),vblf)