我有一个文件名列表,这将是这个样子:排序/成组列表中的项目
SAN003A-S6cp-201607221655.SSHOW_SYS.tgz
SAN003A-S7cp-201607221655.SSHOW_SYS.tgz
BrocadeRK4-S4cp-201604140110.SSHOW_SYS.tgz
BrocadeRK4-S5cp-201604140110.SSHOW_SYS.tgz
的共同点将成为“SNCP”的格局,其中N是一个数字。之前和之后的情况可能有所不同。它是来自网络交换机的机器生成输出。我可以在列表中有1,2个或更多。我可以处理1或2,或者它们来自同一个开关。来自同一台交换机的文件将匹配'SNcp'之前和之后的文件。如果超过2个,则意味着来自多个交换机的日志会混合在同一个文件夹中。上面的例子中有2个开关。我需要能够根据“SNCP”模式之前的内容进行排序/和/或分组。我想我需要一个正则表达式来完成它,但是当我通过正则表达式搜索分组列表时,我得到了如何执行命名组。所以我不确定GroupBy的谓词应该是什么。 'SNCP'模式的开始位置也会有所不同,所以我不确定我会如何做一个子串。
多少组,你想获得以上物品?我的意思是,'N'在所有四个不同,所以你在上面的例子中寻找四个组? – dasblinkenlight
而不是正则表达式,你可能想用'string.IndexOf'获得第一个短划线的索引,然后用它来获得想要分组的所需子串。 – juharr
@dasblinkenlight - 对于上述,我想要两个组,一个以'SAN003A'开头的文件名,一个以'BrocadeRK4'开头的文件名' –