我有以下类型的字符串
var string = "'string, duppi, du', 23, lala"
Run Code Online (Sandbox Code Playgroud)
我想将字符串拆分为每个逗号上的数组,但只有单引号外的逗号.
我无法弄清楚分裂的正确正则表达式......
string.split(/,/)
Run Code Online (Sandbox Code Playgroud)
会给我的
["'string", " duppi", " du'", " 23", " lala"]
Run Code Online (Sandbox Code Playgroud)
但结果应该是:
["string, duppi, du", "23", "lala"]
Run Code Online (Sandbox Code Playgroud)
有没有任何跨浏览器解决方案?
我有这样的csv文件
A, 22, 23, 12
B, 32, 4, 33
C, 34, 3 ,33
Run Code Online (Sandbox Code Playgroud)
我想打印每行的总和和平均值,并跳过第一列.如何在LINQ中使用Lambda
我使用.NET的String.Split方法使用逗号分解字符串,但我想忽略用双引号括起来的字符串.我读过那个
例如,下面的字符串.
Fruit,10,"Bananas, Oranges, Grapes"
Run Code Online (Sandbox Code Playgroud)
我想得到以下内容
Fruit
10
"Bananas, Oranges, Grapes"
Run Code Online (Sandbox Code Playgroud)
目前我得到以下输出
Fruit
10
"Bananas
Oranges
Grapes"
enter code here
Run Code Online (Sandbox Code Playgroud)
在提出以下建议和答案之后,这里是我最终得到的样本.(显然对我有用)
Imports Microsoft.VisualBasic.FileIO
Dim fileReader As New TextFieldParser(fileName)
fileReader.TextFieldType = FieldType.Delimited
fileReader.SetDelimiters(",")
fileReader.HasFieldsEnclosedInQuotes = True
While fileReader.EndOfData = False
Dim columnData() As String = fileReader.ReadFields
' Processing of field data
End While
Run Code Online (Sandbox Code Playgroud) 在C#中,使用Regex该类,如何解析以逗号分隔的值,其中某些值可能引用包含逗号的字符串?
using System ;
using System.Text.RegularExpressions ;
class Example
{
public static void Main ( )
{
string myString = "cat,dog,\"0 = OFF, 1 = ON\",lion,tiger,'R = red, G = green, B = blue',bear" ;
Console.WriteLine ( "\nmyString is ...\n\t" + myString + "\n" ) ;
Regex regex = new Regex ( "(?<=,(\"|\')).*?(?=(\"|\'),)|(^.*?(?=,))|((?<=,).*?(?=,))|((?<=,).*?$)" ) ;
Match match = regex.Match ( myString ) ;
int j = 0 ;
while ( match.Success )
{
Console.WriteLine ( j++ + " …Run Code Online (Sandbox Code Playgroud) 需要通过规范RFC 4180的通用CSV解析器.有csv文件,包含规范的所有问题:
Excel打开文件,因为它在规范中编写:
任何人都在使用正则表达式进行解析吗?
CSV文件
"a
b
c","x
y
z",357
test; test,xxx; xxx,152
"test2,test2","xxx2,xxx2",123
"test3""test3","xxx3""xxx3",987
,qwe,13
asd,123
,,,,
123
,,, 123
123 ,,
123,123
预期成绩

我正在尝试读取其中包含多行单元格的 CSV 文件。
这是 CSV 的样子:

第 1 行,“详细信息”列有多行。
当我尝试使用ReadLine()方法阅读它时:
private void buttonBrowse_Click(object sender, EventArgs e)
{
openFileDialog.Filter = "Excel Worksheets|*.csv";
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
String filePathAndName = openFileDialog.FileName;
StreamReader reader = new StreamReader(filePathAndName);
String line = reader.ReadLine();
Console.WriteLine(line);
do
{
line = reader.ReadLine();
Console.WriteLine(line);
} while (line != null);
}
}
Run Code Online (Sandbox Code Playgroud)
它将具有多行的单元格拆分为行数:
[1]"Time of Day","Process Name","PID","Operation","Path","Result","Detail","Image Path"
[2]"22:52:24.2905182","notepad.exe","4828","Process Start","","SUCCESS","Parent PID: 2484, Command line: ""C:\Windows\system32\notepad.exe"" , Current directory: C:\Users\User\, Environment:
[3]; =::=::\
[4]; ALLUSERSPROFILE=C:\ProgramData
[5]; APPDATA=C:\Users\User\AppData\Roaming
[6]; …Run Code Online (Sandbox Code Playgroud) 我想根据白色分割一个字符串,但是我知道字符串的某些部分将用引号引起来,并且其中会有空格,所以我不希望它分割封装在双引号中的字符串。
if (file == null) return;
else
{
using (StreamReader reader = new StreamReader(file))
{
string current_line = reader.ReadLine();
string[] item;
do
{
item = Regex.Split(current_line, "\\s+");
current_line = reader.ReadLine();
echoItems(item);
}
while (current_line != null);
}
}
Run Code Online (Sandbox Code Playgroud)
上面的分割将分割,即使它被引用,例如“大城市”会出现在我的数组中:
0:“大
1:城镇”
编辑:在尝试@vks答案后,我只能让IDE接受所有引号:Regex.Split(current_line, "[ ](?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)");
Item 是一个数组,我的 print 方法在打印数组内容时在每个元素周围放置一个“[]”。这是我的输出:
[0 0 0 1 2 1 1 1 "Album" 6 6 11 50 20 0 0 0 40 40 0 0 0 1 1] [] [1] [] [1] [] [1] [] …Run Code Online (Sandbox Code Playgroud) 我有一些特殊字符的字符串.目的是检索每一行的String [](,分开)你有特殊字符"你可以拥有/ n和,
For example Main String
Alpha,Beta,Gama,"23-5-2013,TOM",TOTO,"Julie, KameL
Titi",God," timmy, tomy,tony,
tini".
Run Code Online (Sandbox Code Playgroud)
你可以看到"/"中有你/ n.
可以帮助我解决这个问题.
谢谢
__更多解释
主要刺痛我需要分开这些
Here Alpha
Beta
Gama
23-5-2013,TOM
TOTO
Julie,KameL,Titi
God
timmy, tomy,tony,tini
Run Code Online (Sandbox Code Playgroud)
问题是:对于Julie,KameL,Titi有线断裂/ n或
在KameL和Titi之间类似的问题,对于timmy,tomy,tony,tini有断线/ n或
在tony和tini之间.
新的这个文本在文件中(强制逐行阅读)
Alpha,Beta Charli,Delta,Delta Echo ,Frank George,Henry
1234-5,"Ida, John
", 25/11/1964, 15/12/1964,"40,000,000.00",0.0975,2,"King, Lincoln
",Mary / New York,123456
12543-01,"Ocean, Peter
Run Code Online (Sandbox Code Playgroud)
输出我想删除这个"
Alpha
Beta Charli
Delta
Delta Echo
Frank George
Henry
1234-5
Ida
John
"
25/11/1964
15/12/1964
40,000,000.00
0.0975
2
King
Lincoln
"
Mary / New York
123456
12543-01 …Run Code Online (Sandbox Code Playgroud)