本文介绍了sed-如何使用sed做正则表达式组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
无论如何,您是否可以像Java regex pattern/match/group一样使用sed做regex匹配组?
Is there anyway you can do regex match group using sed like java regex pattern/match/group?
如果我有类似
test-artifact-201251-balbal-0.1-SNAPSHOT.jar
我如何仅使用sed来获得如下结果:
how do I use sed just to get the result like:
test-artifact-0.1-SNASHOT.jar
我想知道sed是否允许您执行类似Java regex的操作,您定义的模式如下:
I am wondering does sed allow you to do something like java regex, you define the pattern like:
([a-z]*-[a-z]*-)([0-9]*-)([a-z]*-)([.]*SNAPSHOT.jar)
然后您可以将结果作为一个数组获得,例如:
and then you can get the results as an array like:
test-artifact-
201251-
balbal-
0.1-SNAPSHOT.jar
推荐答案
您必须对括号进行转义才能对表达式进行分组:
You have to escape parentheses to group expressions:
\([a-z]*-[a-z]*-\)\([0-9]*-\)\([a-z]*-\)\([.]*SNAPSHOT.jar\)
并与\1
,\2
等一起使用.
编辑:还请注意,在SNAPSHOT
之前,[.]
将不匹配.内括号.
为文字.应该是[0-9.-]*
EDIT: Also note just before SNAPSHOT
that [.]
will not match. Inside brackets .
is literal. It should be [0-9.-]*
这篇关于sed-如何使用sed做正则表达式组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!