覆盖多个子目录的正确正则表达式是什么



我正在jenkins上配置一个作业,以排除github推送上的文件。我想排除所有pom.xml文件,无论pom.xml位于何处(即父目录或任何子目录中)。

目前,这是有效的:

(P|p)roject/[^/]+/pom.xml
(P|p)roject/[^/]+/[^/]+/pom.xml
(P|p)roject/[^/]+/[^/]+/[^/]+/pom.xml
(P|p)roject/[^/]+/[^/]+/[^/]+/[^/]+/pom.xml

这也有效,但这一行很乱:

(P|p)roject/([^/]+|[^/]+/[^/]+|[^/]+/[^/]+/[^/]+|[^/]+/[^/]+/[^/]+/[^/]+)/pom.xml

我的问题是:有没有一个更干净的单行正则表达式可以覆盖父目录及其子目录

以下工作吗?

(P|p)roject/([^/]+/)+pom.xml

还需要注意的是,您没有转义正斜杠和点字符(.),您应该具有

这可能适用于

 # (?i)project/(?:[^/]*/)*pom.xml
 (?i)
 project/
 (?: [^/]* / )*
 pom . xml

最新更新