这是我尝试使用分割
string[] req_info_texts = Regex.Matches(model_file_string_qts_corrected,
"RequirementInfo.*\"")
.OfType<Match>()
.Select(m=> m.Groups[0].Value.Split('\'').ToString())
.ToArray();
RequirementInfo.*\"
字符串"model_file_string_qts_corrected"
中的行类似于
RequirementInfo "{'1' 2' 3'4 '5' 6'7' 8'syed_syed' 'SRDD_PFC_047602' } %GIDa_033022bd_8058_4216_8b9d_71454ba5f896"
字符串中没有像上面那样的行。
我需要在数组req_info_texts中使用syed_syed。 但我得到的是索引超出范围异常。
你可以说看错了吗?
答案 0 :(得分:0)
string[] req_info_texts = Regex.Matches(input,@"RequirementInfo.*\"")
.Cast<Match>()
.Select(m=> m.Value
.Split(''')
.Where(x=>x.Contains("syed_syed"))
.Single()
).ToArray();
答案 1 :(得分:0)
鉴于您的输入字符串是
正如你在另一个问题的评论中所说的那样,只需要换行,你只需要两个分组:RequirementInfo “{ '其他' '' '' '真' 'syed_syed_GRP001' 'klajdskfjadklsjfklsa'}%GIDa_ed66dae7_2d68_4d07_9c67_a1cf1cb614cc” RequirementInfo “{ '其他' '' '' '真' 'syed_syed_GRP001' 'klajdskfjadklsjfklsa'}%GIDa_b9a766f9_2b2b_4ca8_98f4_f693055b4792” RequirementInfo “{ '其他' '' '' '真' 'syed_syed_GRP004' 'klajdskfjadklsjfklsa'}%GIDa_271d5326_cb57_4d87_8cd9_66687c0a1d32” RequirementInfo “{ '其他' '' '' '真' 'syed_syed_GRP03' 'klajdskfjadklsjfklsa'}%GIDa_07ed6119_91d2_41f9_94dc_69d518503d64”
var infosString = "RequirementInfo \"{'other' ' ' '' 'true' 'syed_syed_GRP001' 'klajdskfjadklsjfklsa' } %GIDa_ed66dae7_2d68_4d07_9c67_a1cf1cb614cc\"\nRequirementInfo \"{'other' ' ' '' 'true' 'syed_syed_GRP001' 'klajdskfjadklsjfklsa' } %GIDa_b9a766f9_2b2b_4ca8_98f4_f693055b4792\"\n RequirementInfo \"{'other' ' ' '' 'true' 'syed_syed_GRP004' 'klajdskfjadklsjfklsa' } %GIDa_271d5326_cb57_4d87_8cd9_66687c0a1d32\"\n RequirementInfo \"{'other' ' ' '' 'true' 'syed_syed_GRP03' 'klajdskfjadklsjfklsa' } %GIDa_07ed6119_91d2_41f9_94dc_69d518503d64";
var result = infosString.Split('\n').Select(line => line.Split('\'')[9]).ToArray();
结果现在是
第一个Split
创建一个数组,其中字符串以RequirementInfo
开头,Select
再次拆分这些字符串并获取第10个项目(以syed_syed
开头的项目)。