0

这是我尝试使用拆分的方法

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 。但是我得到的是索引超出范围异常。

你能说这是错误吗?

4

2 回答 2

0
string[] req_info_texts = Regex.Matches(input,@"RequirementInfo.*\"")
                               .Cast<Match>()
                               .Select(m=> m.Value
                                            .Split(''')
                                            .Where(x=>x.Contains("syed_syed")) 
                                            .Single()
                                      ).ToArray();
于 2013-09-20T12:54:01.827 回答
0

鉴于您的输入字符串是

RequirementInfo "{'other' ' ' '' 'true' 'syed_syed_GRP001' 'klajdskfjadklsjfklsa' } %GIDa_ed66dae7_2d68_4d07_9c67_a1cf1cb614cc" RequirementInfo "{'other' ' ' '' 'true' 'syed_syed_GRP001' 'klajdskfjadklsjfklsa' } %GIDa_b9a766f9_2b2b_4ca8_98f4_f693055b4792" RequirementInfo "{' other' ' ' '' 'true' 'syed_syed_GRP004' 'klajdskfjadklsjfklsa' } %GIDa_271d5326_cb57_4d87_8cd9_66687c0a1d32" RequirementInfo "{'other' ' ' '' 'true' '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)。

于 2013-09-20T14:42:48.017 回答