簡體   English   中英

使用正則表達式識別,將字符串解析為鋸齒狀數組,使用整數彈出維度

[英]parse string to jagged array poppulating dimensions with integers using regex to identify

我正在使用它並遇到了一個新問題,因為我需要合並一個鋸齒狀數組,所以我嘗試修改這個代碼就像這樣..

string y = "{10} red30, {20} blue12, {30} green90, {40} yellow13 : {15} axe,  
     {25} frog, {33} sandwich, {55} spinach : ...." and so on. 

int[][] Odds = y.Split(':').Select(t => Regex.Matches(t, @"(?<={)\d+(?=})"))  
    .Cast<Match>() .Select(m => int.Parse(m.Value)) .ToArray();

使用一個新的字符串,其中“:”作為每個新數組之間的分隔符。 它給了我“不能隱式轉換類型'int []'到'int [] []'的錯誤

這是因為Matches方法不返回Match對象,它返回一個MatchCollection對象。 您必須從每個集合中獲取Match對象並解析值,然后您可以將它們轉換為數組:

int[][] Odds =
  y.Split(':')
  .Select(t => Regex.Matches(t, @"(?<={)\d+(?=})"))
  .Cast<MatchCollection>()
  .Select(
    m => m.Cast<Match>()
     .Select(n => int.Parse(n.Value))
     .ToArray()
  )
  .ToArray();

暫無
暫無

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

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