你是否可以像 java regex pattern/match/group 一样使用 sed 进行 regex 匹配组?
如果我有类似的字符串
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
最佳答案
您必须将括号转义为组表达式:
\([a-z]*-[a-z]*-\)\([0-9]*-\)\([a-z]*-\)\([.]*SNAPSHOT.jar\)
并将它们与 \1
、\2
等一起使用。
EDIT:还要注意在 SNAPSHOT
之前 [.]
将不匹配。括号内的 .
是文字。它应该是 [0-9.-]*
关于regex - sed - 如何使用 sed 进行正则表达式组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11650940/