将字符串拆分为包含在捕获括号中的数组
Split string into array that is enclosed in capturing parentheses
我的项目中有以下字符串:
((1,01/31/2015)(1,Filepath)(1,name)(1,code)(1,String)(1, ))
我想将这个字符串分成几个部分,在这些部分中我可以在捕获括号内获取信息(例如 1,Filepath
或 (1,Filepath)
,但是整个字符串也在捕获括号中,如您所见. 然后我尝试将结果放入数组 string[] array = Regex.Split(originalString,SomeRegexHere)
现在我想知道最好的方法是什么,只需删除字符串的第一个和最后一个字符,这样我就没有捕获括号包围整个字符串,或者有什么方法可以使用正则表达式在此得到我想要的结果?
(?<=\()[^()]*(?=\))
只需匹配并获取您的内容,而不是 splitting.See 演示。
string s = "((1,01/31/2015)(1,Filepath)(1,name)(1,code)(1,String)(1, ))";
var data = s.Split(new string[]{"(", ")"}, StringSplitOptions.RemoveEmptyEntries)
你的数据将是
["1,01/31/2015",
"1,Filepath",
"1,name",
"1,code",
"1,String",
"1,"]
您可以创建一个没有前 2 个和后 2 个括号的子字符串,然后将其拆分到封闭的括号中
var s = "((1,01/31/2015)(1,Filepath)(1,name)(1,code)(1,String)(1, ))";
var result = s.Substring(2, s.Length - 4)
.Split(new string[]{")("}, StringSplitOptions.RemoveEmptyEntries);
foreach(var r in result)
Console.WriteLine(r);
输出
1,01/31/2015
1,Filepath
1,name
1,code
1,String
1,
我的项目中有以下字符串:
((1,01/31/2015)(1,Filepath)(1,name)(1,code)(1,String)(1, ))
我想将这个字符串分成几个部分,在这些部分中我可以在捕获括号内获取信息(例如 1,Filepath
或 (1,Filepath)
,但是整个字符串也在捕获括号中,如您所见. 然后我尝试将结果放入数组 string[] array = Regex.Split(originalString,SomeRegexHere)
现在我想知道最好的方法是什么,只需删除字符串的第一个和最后一个字符,这样我就没有捕获括号包围整个字符串,或者有什么方法可以使用正则表达式在此得到我想要的结果?
(?<=\()[^()]*(?=\))
只需匹配并获取您的内容,而不是 splitting.See 演示。
string s = "((1,01/31/2015)(1,Filepath)(1,name)(1,code)(1,String)(1, ))";
var data = s.Split(new string[]{"(", ")"}, StringSplitOptions.RemoveEmptyEntries)
你的数据将是
["1,01/31/2015",
"1,Filepath",
"1,name",
"1,code",
"1,String",
"1,"]
您可以创建一个没有前 2 个和后 2 个括号的子字符串,然后将其拆分到封闭的括号中
var s = "((1,01/31/2015)(1,Filepath)(1,name)(1,code)(1,String)(1, ))";
var result = s.Substring(2, s.Length - 4)
.Split(new string[]{")("}, StringSplitOptions.RemoveEmptyEntries);
foreach(var r in result)
Console.WriteLine(r);
输出
1,01/31/2015
1,Filepath
1,name
1,code
1,String
1,