相关疑难解决方法(0)

Java:拆分以逗号分隔的字符串,但忽略引号中的逗号

我有一个模糊的字符串:

foo,bar,c;qual="baz,blurb",d;junk="quux,syzygy"
Run Code Online (Sandbox Code Playgroud)

我想用逗号分割 - 但我需要在引号中忽略逗号.我怎样才能做到这一点?好像正则表达式方法失败了; 我想我可以在看到引号时手动扫描并进入不同的模式,但是使用预先存在的库会更好.(编辑:我想我的意思是已经是JDK的一部分或已经是Apache Commons等常用库的一部分的库.)

上面的字符串应该分成:

foo
bar
c;qual="baz,blurb"
d;junk="quux,syzygy"
Run Code Online (Sandbox Code Playgroud)

注意:这不是CSV文件,它是包含在具有更大整体结构的文件中的单个字符串

java regex string

238
推荐指数
4
解决办法
18万
查看次数

使用C#读取CSV文件

我正在编写一个简单的导入应用程序,需要读取CSV文件,在a中显示结果DataGrid并在另一个网格中显示CSV文件的损坏行.例如,显示另一个网格中短于5个值的行.我试着这样做:

StreamReader sr = new StreamReader(FilePath);
importingData = new Account();
string line;
string[] row = new string [5];
while ((line = sr.ReadLine()) != null)
{
    row = line.Split(',');

    importingData.Add(new Transaction
    {
        Date = DateTime.Parse(row[0]),
        Reference = row[1],
        Description = row[2],
        Amount = decimal.Parse(row[3]),
        Category = (Category)Enum.Parse(typeof(Category), row[4])
    });
}
Run Code Online (Sandbox Code Playgroud)

但在这种情况下,在阵列上操作非常困难.有没有更好的方法来分割价值观?

c# csv

159
推荐指数
6
解决办法
23万
查看次数

使用带引号和未带引号的字符串分隔逗号分隔的字符串

我有以下逗号分隔的字符串,我需要拆分.问题是某些内容在引号内并包含不应在分割中使用的逗号...

串:

111,222,"33,44,55",666,"77,88","99"
Run Code Online (Sandbox Code Playgroud)

我想要输出:

111  
222  
33,44,55  
666  
77,88  
99  
Run Code Online (Sandbox Code Playgroud)

我试过这个:

(?:,?)((?<=")[^"]+(?=")|[^",]+)   
Run Code Online (Sandbox Code Playgroud)

但它读取"77,88","99"之间的逗号作为命中,我得到以下输出:

111  
222  
33,44,55  
666  
77,88  
,  
99  
Run Code Online (Sandbox Code Playgroud)

有谁能够帮我?我用完了几个小时...... :) /彼得

c# regex

52
推荐指数
4
解决办法
6万
查看次数

C#Regex Split - 引号外的逗号

我有很多字符串(实际上是SQL代码段),格式如下:

('ABCDEFG', 123542, 'XYZ 99,9')
Run Code Online (Sandbox Code Playgroud)

我需要使用C#拆分此字符串,以获得:

  • 'ABCDEFG'
  • 123542
  • 'XYZ 99,9'

我最初使用的是一个简单的Split(','),但由于最后一个参数中的逗号导致输出中的破坏,我需要使用Regex来获取它.问题是我在正则表达式中仍然相当无趣,我似乎无法破解模式主要是因为在该字符串内部,数字和字母数字参数可能随时存在......

我可以用什么来根据引号之外的每个逗号分割该字符串?干杯

c# regex

38
推荐指数
4
解决办法
4万
查看次数

使用空格和引号解析字符串(保留引号)

如果我有string这样的话

create myclass "56, 'for the better or worse', 54.781"
Run Code Online (Sandbox Code Playgroud)

如何解析它,结果将是三个字符串"单词",其中包含以下内容:

[0] create
[1] myclass
[2] "56, 'for the better or worse', 54.781"
Run Code Online (Sandbox Code Playgroud)

编辑2:请注意保留引号

起初,我尝试使用string.Split(' '),但我注意到它会使第三个string被打破到其他几个字符串.

我尝试Split通过使用其count参数来限制结果3以解决此问题.对于这种情况是否可以,但是当给定的字符串是

create myclass false "56, 'for the better or worse', 54.781" //or
create myclass "56, 'for the better or worse', 54.781" false
Run Code Online (Sandbox Code Playgroud)

然后拆分失败,因为最后两个单词将合并.

我还创建了类似ReadInBetweenSameDepth获得string在引号之间

这是我的ReadInBetweenSameDepth方法

//Examples:
    //[1] (2 + 1) * (5 + 6) will return …
Run Code Online (Sandbox Code Playgroud)

c# regex string

7
推荐指数
1
解决办法
205
查看次数

使用String.Split()拆分字符串

我试图将一个字符串拆分成子部分以传递到linq数据库,但我想出了一个问题.该文件是一个.csv文件,所以用逗号分隔它:

1,Ms,Aleshia,Tomkiewicz,14 Taylor St,St.Stephens Ward,Kent,CT2 7PP,01835-703597,atomkiewicz @ hotmail.com.

然而,一些数据包含数据字段中的逗号,如县/地址用逗号分隔,但我不希望它分裂,我希望它将所有数据保存在一起,例如地址:伦敦,温布尔登.

im using this code currently to do the chopping:


 public static List<string> ReturnCSVFromWeb(string url)
        {
            System.Net.WebClient client = new WebClient();
            string CSVContent = client.DownloadString(url);

            List<string> splitted = new List<string>();
            string csvFile = CSVContent;
            string[] tempStr;

            tempStr = csvFile.Split(',','\n');

            foreach (string item in tempStr)
            {
                if (!string.IsNullOrWhiteSpace(item))
                {
                    splitted.Add(item);
                }
            }

            return splitted;

        }
Run Code Online (Sandbox Code Playgroud)

c# csv string split

0
推荐指数
1
解决办法
109
查看次数

标签 统计

c# ×5

regex ×4

string ×3

csv ×2

java ×1

split ×1