一尘不染

sed-如何使用sed做正则表达式组

linux

无论如何,您可以像Java正则表达式模式/匹配/组一样使用sed做正则表达式匹配组吗?

如果我有像

test-artifact-201251-balbal-0.1-SNAPSHOT.jar

我如何使用sed只是为了获得如下结果:

test-artifact-0.1-SNASHOT.jar

我想知道sed是否允许您执行类似java regex的操作,您定义的模式如下:

([a-z]*-[a-z]*-)([0-9]*-)([a-z]*-)([.]*SNAPSHOT.jar)

然后您可以将结果作为一个数组获得,例如:

test-artifact-
201251-
balbal-
0.1-SNAPSHOT.jar

阅读 762

收藏
2020-06-07

共1个答案

一尘不染

您必须对括号进行转义才能对表达式进行分组:

\([a-z]*-[a-z]*-\)\([0-9]*-\)\([a-z]*-\)\([.]*SNAPSHOT.jar\)

并与使用它们\1\2等等。


编辑 :还请注意,在SNAPSHOT此之前[.]不匹配。括号内.是文字。它应该是[0-9.-]*

2020-06-07