在 MS Project 中,任务可以链接到多个其他任务,这些任务可以驻留在单独的(外部)项目文件中。获得对这些外部链接任务的引用的唯一方法是解析出“Predecessors”字段,它是一个逗号分隔的链接列表。不幸的是,这些外部链接的路径中可能有逗号,因此简单的拆分不起作用。
这是一个带有 3 个链接的示例,第二个是外部链接:
123FS+5d,\\server\文件夹,带逗号\project1.mpp\456,789
对于内部链接,格式可以是以下任何一种:
- #tk
- #tk+#d
- #tk-#d
其中第一个数字是 ID,占位符 tk 可以是 FS、FF、SS 或 SF,可选的最后一部分(滞后)是 +/- # 天。
对于外部链接,链接信息前面是包含路径的文件名,后跟反斜杠。路径可以是 UNC(例如 \\)或映射的驱动器号(例如 L:\)。
一个字段中可以有一个或多个链接,并且所有链接、部分链接或没有链接都可以是外部链接。
我需要一个正则表达式模式来匹配这些链接列表。
感谢您的帮助!
编辑
为了后代的缘故,这是最有效的模式,因为它也匹配来自 Project Server ("<>\file name\123") 的路径
(((<>\\[^\\]+\\)+)|([A-Z]:|\\)\\([^\\]+\\)+)?\d+([FS]{2}([+-]\d+d)?)?(?=,|$)
另请参阅如何获取外部依赖任务的唯一 ID?进一步增强此正则表达式模式。