C# 使用分隔符拆分字符串,但有异常

C# 使用分隔符拆分字符串,但有异常,c#,string,C#,String,我有一个如下所示的文本文件 新西兰航空有限公司,AIZ,运输 “AIRXPANDERS,INC.”,AXP,医疗设备和服务 阿拉拉资源有限公司,AUQ,材料 ALCHEMIA有限公司,ACL,“制药、生物技术和生命科学” 炼金术资源有限公司,ALY,材料 它有三列,总是用逗号分隔。但也有一些例外,内容本身包含逗号。该文件已将这些放在一对引号中 如何使用String.Split方法方便地读取列并处理这些异常 干杯 Ji这看起来像CSV格式导入Csv应该可以做到: $data = Import-Cs

我有一个如下所示的文本文件

新西兰航空有限公司,AIZ,运输

“AIRXPANDERS,INC.”,AXP,医疗设备和服务

阿拉拉资源有限公司,AUQ,材料

ALCHEMIA有限公司,ACL,“制药、生物技术和生命科学”

炼金术资源有限公司,ALY,材料

它有三列,总是用逗号分隔。但也有一些例外,内容本身包含逗号。该文件已将这些放在一对引号中

如何使用String.Split方法方便地读取列并处理这些异常

干杯
Ji

这看起来像CSV格式<代码>导入Csv应该可以做到:

$data = Import-Csv -Path your-data.txt -Delimiter ","

Import Csv
假定第一行包含列标题。如果不是,您可以使用
-header
开关(即
-header:“col1”、“col2”、“col3”
)定义头名称。

这看起来像CSV格式<代码>导入Csv应该可以做到:

$data = Import-Csv -Path your-data.txt -Delimiter ","

Import Csv
假定第一行包含列标题。如果不是,您可以使用
-header
开关(即
-header:“col1”、“col2”、“col3”
)定义头名称。

使用和
matches
函数提取匹配项,而不是拆分字符串

例如:

var input = @"Column1,Column2,""Column,4"",Column4";
var expression = @"""[^""]*""|[^,]+";
var results = Regex.Matches(input, expression);
foreach (var s in results)
{
    Console.WriteLine(s);
}
输出:

Column1
Column2
"Column,4"
Column4

使用a和
matches
函数提取匹配项,而不是拆分字符串

例如:

var input = @"Column1,Column2,""Column,4"",Column4";
var expression = @"""[^""]*""|[^,]+";
var results = Regex.Matches(input, expression);
foreach (var s in results)
{
    Console.WriteLine(s);
}
输出:

Column1
Column2
"Column,4"
Column4

字符串在引号上拆分,然后在逗号上拆分?请发布您迄今为止开发的代码。字符串[]cols=row.split(',')//显然这是行不通的work@JohnWu,谢谢你指出。虽然我不知道正则表达式是如何工作的,但它是有效的!请尝试以下链接:使用引号拆分字符串,然后使用逗号拆分?请发布您迄今为止开发的代码。String[]cols=row.split(',')//显然这是行不通的work@JohnWu,谢谢你指出。虽然我不知道正则表达式是如何工作的,但它是有效的!请尝试以下链接: