如何拆分给定的文本 [英] How to split the given text
本文介绍了如何拆分给定的文本的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
更快,WW0011,CTR,REURN,ALT TUBING HELIUM LEAK,DEFAULT测试,1,3.81,测试
我需要得到结果以下行为
Arr(0)=更快
Arr(1)= WW0011
Arr(2)= CTR,REURN,ALT TUBING氦气泄漏
Arr(3)=默认测试
Arr(4)=更快
Arr(5)= 1
Arr(6)= 3.81
Arr(7)=测试
我尝试使用拆分,但问题出在Arr(2)任何人都可以请给我解决方案
解决方案
从这里开始: http://stackoverflow.com/questions/736629/parse-delimited-csv-in-net [ ^ ]
使用Microsoft.VisualBasic.FileIO.TextFieldParser
class:
TextFieldParser解析器= new TextFieldParser( new StringReader(csvAsString));
// 或从文件中读取
// TextFieldParser parser = new TextFieldParser(mycsvfile.csv);
解析器。 HasFieldsEnclosedInQuotes = true ;
parser.SetDelimiters( ,);
string [] splitStrings;
while (!parser.EndOfData)
{
fields = parser.ReadFields();
foreach (splitString in splitStrings)
{
Console.WriteLine (splitString);
}
}
// 不要忘记清理
parser.Close();
私人 功能 splitQuotedLine( ByVal line As 字符串, ByVal delimeter As Char ) As String ()
Dim 列表作为 新列表( Of String )
< span class =code-keyword> while line.IndexOf(delimeter)<> -1
如果 line.StartsWith( )然后
line = line.Substring( 1 )
Dim idx 作为 整数 = line.IndexOf( )
while line.IndexOf( ,idx)= line.IndexOf( < span class =code-string> ,idx)
idx = line.IndexOf( < span class =code-string> ,idx)+ 2
结束
idx = line.IndexOf( ,idx)
list.Add(line.Substring( 0 ,idx))
line = line.Substring(idx + 2 )
否则
list.Add(line.Substring( 0 ,Math.Max(line.IndexOf(delimeter), 0 )))
line = line .Substring(line.IndexOf(delimeter)+ 1 )
结束 如果
循环
list.Add(line)
返回 list.ToArray
结束 功能
FASTER,WW0011,"CTR ,REURN,ALT TUBING HELIUM LEAK",DEFAULT test,1,3.81,test
I need to get the result of the following line as
Arr(0) =faster
Arr(1) =WW0011
Arr(2) =CTR ,REURN,ALT TUBING HELIUM LEAK
Arr(3) =DEFAULT test
Arr(4) =faster
Arr(5) = 1
Arr(6)=3.81
Arr(7) = test
I tried using split, but the problem is on Arr(2) could anyone please give me a solution
解决方案
Start here : http://stackoverflow.com/questions/736629/parse-delimited-csv-in-net[^]
Use theMicrosoft.VisualBasic.FileIO.TextFieldParser
class:
TextFieldParser parser = new TextFieldParser(new StringReader(csvAsString)); // or read from the file // TextFieldParser parser = new TextFieldParser("mycsvfile.csv"); parser.HasFieldsEnclosedInQuotes = true; parser.SetDelimiters(","); string[] splitStrings; while (!parser.EndOfData) { fields = parser.ReadFields(); foreach (splitString in splitStrings) { Console.WriteLine(splitString); } } //Don't forget cleanup parser.Close();
Private Function splitQuotedLine(ByVal line As String, ByVal delimeter As Char) As String() Dim list As New List(Of String) Do While line.IndexOf(delimeter) <> -1 If line.StartsWith("""") Then line = line.Substring(1) Dim idx As Integer = line.IndexOf("""") While line.IndexOf("""", idx) = line.IndexOf("""""", idx) idx = line.IndexOf("""""", idx) + 2 End While idx = line.IndexOf("""", idx) list.Add(line.Substring(0, idx)) line = line.Substring(idx + 2) Else list.Add(line.Substring(0, Math.Max(line.IndexOf(delimeter), 0))) line = line.Substring(line.IndexOf(delimeter) + 1) End If Loop list.Add(line) Return list.ToArray End Function
这篇关于如何拆分给定的文本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文