将定义的定界符之间的字符串中的所有子字符串提取到字符串数组中
Extract all substrings from string between defined delimiter into string array
我需要某种方法,使用正则表达式或拆分我不知道可以执行以下操作。
我有这样的字符串:
ls 0
[0,86,180]
ls 1
[1,2,200]
ls 2
[2,3,180]
ls 3
[3,4,234]
...等等。我希望括号 [ ] 之间的所有内容都是字符串数组中的一个字符串,其他所有内容都忽略
像 following 这样的正则表达式应该可以工作。
(\[[\d]*,[\d]*,[\d]*\]*)
您只需要按照说明阅读多个匹配项 here。
这可能会给你整个思路和步骤:
var yourString = @"ls 0
[0,86,180]
ls 1
[1,2,200]
ls 2
[2,3,180]
ls 3
[3,4,234]";
var result = yourString.Split(new char[] { '\n' }) //split
.Where(i => i.Contains('[')) //filter
.Select(i => i.Replace("[", string.Empty) //prepare
.Replace("]", string.Empty))
.ToList();
var newArray = string.Join(",", result); //merge the result
以防数字块不总是三个一组
var myString = "ls 0
[0,86,190]
ls 1
[1,2,300]
ls 2
[2,3,185]
ls 3
[3,4,2345]";
Regex pattern = new Regex(@"\[[\d,]*\]*");
Match numbers = pattern.Match(myString);
if(numbers.Success)
{
do {
var val = numbers.Value;
// code for each block of numbers
numbers.NextMatch();
} while(numbers.Success)
}
我需要某种方法,使用正则表达式或拆分我不知道可以执行以下操作。
我有这样的字符串:
ls 0
[0,86,180]
ls 1
[1,2,200]
ls 2
[2,3,180]
ls 3
[3,4,234]
...等等。我希望括号 [ ] 之间的所有内容都是字符串数组中的一个字符串,其他所有内容都忽略
像 following 这样的正则表达式应该可以工作。
(\[[\d]*,[\d]*,[\d]*\]*)
您只需要按照说明阅读多个匹配项 here。
这可能会给你整个思路和步骤:
var yourString = @"ls 0
[0,86,180]
ls 1
[1,2,200]
ls 2
[2,3,180]
ls 3
[3,4,234]";
var result = yourString.Split(new char[] { '\n' }) //split
.Where(i => i.Contains('[')) //filter
.Select(i => i.Replace("[", string.Empty) //prepare
.Replace("]", string.Empty))
.ToList();
var newArray = string.Join(",", result); //merge the result
以防数字块不总是三个一组
var myString = "ls 0
[0,86,190]
ls 1
[1,2,300]
ls 2
[2,3,185]
ls 3
[3,4,2345]";
Regex pattern = new Regex(@"\[[\d,]*\]*");
Match numbers = pattern.Match(myString);
if(numbers.Success)
{
do {
var val = numbers.Value;
// code for each block of numbers
numbers.NextMatch();
} while(numbers.Success)
}