我有一个看起来像这样的文件的字符串输入,我创建了一个正则表达式,成功地提取了这个:
addresses { 1.1.1.1;
2.2.2.2;
3.3.3.3;
}
任何一行都可以有任意的空格。我想获得List<string>
地址值:
s[0] = "1.1.1.1"
s[1] = "2.2.2.2"
etc...
任何人都可以帮助我使用相关的C#吗?我正处于我的正则表达式技能的极限。
答案 0 :(得分:1)
你需要获得花括号的内容(使用正则表达式或仅使用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();
答案 1 :(得分:0)
可能有多种方法可以从字符串中提取值。这可能就是其中之一。
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();