extract-doker使用regex组合文件卷



我正在尝试用regex提取docker compose文件的所有容器的绑定挂载/卷。

我为这个目的制作的图案是:

/volumes:n(?:^[ n]+- ?(S+))/gm

Regex Demo

但它只选择每个容器的第一个卷/绑定装载。

如何选择ALLvolumes列表项?

您可以匹配卷:和一个换行符,然后匹配以1个或多个空格开头的所有行,然后匹配-

bvolumes:r?n((?:[^Srn]+- .*(?:r?n|$))*)
  • bvolumes:r?n
  • (捕获组1
    • (?:非捕获组
      • [^Srn]+除换行符外匹配1+个空格
      • - .*(?:r?n|$)匹配后面跟有字符串其余部分的-
    • )*关闭非捕获组并重复0+次
  • )关闭组1

Regex演示

如果卷必须位于该行的开头,则可以匹配前面的可选空格。

^[^Srn]*volumes:r?n((?:[^Srn]+- .*(?:r?n|$))*)

Regex演示

最新更新