簡體   English   中英

從大括號內提取分隔列表

[英]Extract delimited list from inside curly brackets

我從一個看起來像這樣的文件中輸入了字符串,並且我創建了一個正則表達式,它成功地提取了這個:

 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# 嗎? 我正處於我的正則表達式技能的極限。

您只需要獲取花括號的內容(使用正則表達式或僅使用 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();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM