拆分字符串 - C# - 复杂

时间:2016-09-08 12:39:09

标签: c# regex string split

我有以下字符串,我想分开它:

"INSERT INTO test (test, test1, test2, test3) values (@test, @test1, @test2, @test3)";

我想要获得的值是分开的@test @ test1 @ test2 @ test3所以我可以为每个人做一些不同的事情

这是我目前所拥有的。

string str = "INSERT INTO test (test, test1, test2, test3) values (@test, @test1, @test2, @test3)"
var pattern = @"(?<=@)[^@]*(?=>,)";
foreach (var m in System.Text.RegularExpressions.Regex.Split(str, pattern))
     {
        Console.WriteLine(m);
     }

这将返回整个字符串:

INSERT INTO test (test, test1, test2, test3) values (@test, @test1, @test2, @test3)

我希望你们中的一些人可以帮助我,因为这是我的计划工作的最后一针。

2 个答案:

答案 0 :(得分:1)

你试过string pattern = @"@[a-zA-Z0-9]+";吗?

答案 1 :(得分:1)

嗯,我不喜欢正则表达式,但很多人都是,所以我会给你答案作为一个很好的旧字符串方法:

var parameters = str.Split('@').Skip(1).Select(var=>"@" + var.Trim(new[] {',',')', ' '}));