以下zip文件需要使用它所在的模式或不在目录中进行检查。如何将模式与RegEx匹配?
Zip文件:
TestReport-20140311_18121024-BWSI MGMT-74482677-00f0-49ea-9330-f60738da4bc0.zip
要匹配的模式:
TestReport-{YYYYMMDD_HHmmssff}-[BWSI MGMT]-[UniqueId].zip
下面,
UniqueId是74482677-00f0-49ea-9330-f60738da4bc0
答案 0 :(得分:0)
如果你真的想对此懒惰,你可以用一行正则表达式来做:
Regex rx("TestReport-(?<year>\d{4})(?<month>\d{2})(?<day>\d{2})_(?<hours>\d{2})(?<minutes>\d{2})(?<seconds>\d{2})(?<fractions>\d{2})-(?<machine>.*?)-(?<guid>[a-f\d]{8}-[a-f\d]{4}-[a-f\d]{4}-[a-f\d]{4}-[a-f\d]{12}).zip", RegexOptions.IgnoreCase);
但是,您也可以在给定的intervalls中拆分名称,假设名称肯定是以该格式保持不变。
答案 1 :(得分:0)
这个正则表达式会这样做:
(?i)TestReport-\d{8}_\d{8}-[a-z\s]+?-[a-f\d]{8}-(?:[a-f\d]{4}-){3}[a-f\d]{12}.zip
请注意,它不会检查日期值实际上是否为有效日期,只是它具有正确位置的数字。
(?i)
关闭区分大小写。 \d{8}_\d{8}
匹配日期。[a-z\s]+?
匹配BWSI MGMT
。我不确定这是否总是这个字符串。如果是,则可以替换为BWSI\sMGMT
。-[a-f\d]{8}-(?:[a-f\d]{4}-){3}[a-f\d]{12}
匹配唯一ID。 (?:)
是一个非捕获组。