Ну, я не нахожу способ работать с каким-либо регулярным выражением или методом javascript (я считаю, что это можно сделать).Я работал по-другому, чтобы разделить информацию.
Я использовал AJAX, чтобы отправить эту информацию на сервер и выполнить разделение в VB.В резюме:
Я получаю максимальное количество столбцов (разделенных по вкладкам).
Получите и оцените каждое значение массива вкладок.
Если начать с двойных кавычек, попытался найти конец двойных кавычек (до этого заменил средние двойные кавычки уникальным текстом)
Каждый раз, когда оценивался элемент исходного массива, я удалял каждый элемент (Всегда оценивать элемент 0) ...
Если найти новую строку (окончание строки), только удален текст «последнего столбца» предыдущего ряда.
Надеюсь, помогите кому-нибудь с такой же проблемой.Cheers.
Вот код:
Public Function TEST(ByVal pText As String) As String
Try
Dim vText As String = pText
Dim vArray As New ArrayList
vArray.AddRange(vText.Split(vbNewLine))
Dim vActualIndex As Integer = 0
Dim vMaxColumns As Integer = 0
For Each vArrayItem In vArray
If vArrayItem.Split(vbTab).Length > vMaxColumns Then
vMaxColumns = vArrayItem.Split(vbTab).Length
End If
Next
Dim vActualArray(vMaxColumns - 1) As String
vArray = New ArrayList
vArray.AddRange(vText.Split(vbTab))
Dim vLen As Integer = vArray.Count
Dim vNewArray As New ArrayList
vActualIndex = 0
Do While vArray.Count <> 0
If vArray(0).Split(vbNewLine).Length = 1 Then
vActualArray(vActualIndex) = vArray(0)
vActualIndex += 1
Else
If vArray(0).Split(vbNewLine)(0).ToString.StartsWith("""") Then
vArray(0) = Mid(vArray(0), 2).Replace("""""", "*_IDIDIDUNIQUEID_*")
If InStr(vArray(0), """" & vbNewLine) <> 0 Then
vActualArray(vActualIndex) = Mid(vArray(0), 1, InStr(vArray(0), """" & vbNewLine) + 1)
vArray(0) = Mid(vArray(0), InStr(vArray(0), """" & vbNewLine) + 3)
vActualArray(vActualIndex) = vActualArray(vActualIndex).ToString.Replace("*_IDIDIDUNIQUEID_*", """""")
vArray(0) = vArray(0).ToString.Replace("*_IDIDIDUNIQUEID_*", """""")
vActualIndex += 1
GoTo Skip_remove
End If
vArray(0) = vArray(0).ToString.Replace("*_IDIDIDUNIQUEID_*", """""")
vActualArray(vActualIndex) = vArray(0)
vActualIndex += 1
Else
vActualArray(vActualIndex) = vArray(0).Split(vbNewLine)(0)
vActualIndex += 1
vArray(0) = vArray(0).ToString.Substring(vArray(0).Split(vbNewLine)(0).ToString.Length + 2)
GoTo Skip_remove
End If
End If
vArray.RemoveAt(0)
'Это метка в VB-коде Skip_remove:
If vActualIndex >= vMaxColumns Then
vNewArray.Add(vActualArray)
ReDim vActualArray(vMaxColumns - 1)
vActualIndex = 0
End If
Loop
Catch ex As Exception
Return ""
End Try
End Function