Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从花括号内提取分隔列表_C#_Arrays_Regex - Fatal编程技术网

C# 从花括号内提取分隔列表

C# 从花括号内提取分隔列表,c#,arrays,regex,C#,Arrays,Regex,我从一个类似这样的文件中输入了字符串,我创建了一个正则表达式,它成功地提取了以下内容: addresses { 1.1.1.1; 2.2.2.2; 3.3.3.3; } 任何一行都可以有任意的空格。我只想获得地址值的列表: s[0] = "1.1.1.1" s[1] = "2.2.2.2" etc... 有人能帮我弄一下相关的C#吗?我的正则表达式技能已经到了极限。您只需获取大括号的内容(使用正则表达式或简单地使用IndexOf)并按分割即可 var input = @"addr

我从一个类似这样的文件中输入了字符串,我创建了一个正则表达式,它成功地提取了以下内容:

 addresses { 1.1.1.1;
  2.2.2.2;
  3.3.3.3;
 }
任何一行都可以有任意的空格。我只想获得地址值的
列表

s[0] = "1.1.1.1"
s[1] = "2.2.2.2"
etc...

有人能帮我弄一下相关的C#吗?我的正则表达式技能已经到了极限。

您只需获取大括号的内容(使用正则表达式或简单地使用IndexOf)并按
分割即可

var input = @"addresses { 1.1.1.1; 2.2.2.2; 3.3.3.3; }";
var regex = new Regex(@"[^{]+{([^}]+)}", RegexOptions.Multiline);
var addresses = regex.Match(input).Groups[1].Value
    .Split(';')
    .Select(s => s.Trim())
    .Where(s => !String.IsNullOrWhiteSpace(s))
    .ToList();

可以有n种方法从字符串中提取值。这可能是其中之一

string input = @"addresses { 1.1.1.1; 2.2.2.2; 3.3.3.3; }";
string formattedInput = Regex.Replace(input, @"[A-Za-z*{}]", "");
List<string> InpList = formattedInput.Split(new char[] { ' ', ';' }, StringSplitOptions.RemoveEmptyEntries).ToList();
string input=@“地址{1.1.1;2.2.2.2;3.3.3.3;}”;
字符串formattedInput=Regex.Replace(输入,@“[A-Za-z*{}]”,“”);
List InpList=formattedInput.Split(新字符[]{'',';'},StringSplitOptions.RemoveEmptyEntries.ToList();

不清楚您的代码有什么问题。你有什么错误吗?看看这个。你试过什么?无论如何,您可以使用regex(再次)解决它,并匹配模式
1.1.1
-->类似
(\d+。\d+。\d+。\d+)。正是我希望创建的优雅解决方案。我在正确的语法方面遇到了很多麻烦。谢谢