regex - sed - 如何使用 sed 进行正则表达式组

标签 regex linux sed

你是否可以像 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/

相关文章:

php - 匹配utf中的整个单词

javascript - 对正则表达式产生的所有数字求和

linux - 哪些库应该作为依赖项进入 pkg-config 文件?

php exec 返回的结果少于直接进入命令行的结果

python - 无法在没有 sudo 的情况下通过 tor 在 python 脚本中路由请求

linux - 比较 2 个 Unix 文件并将匹配行输出到一个新文件?

python - 使用 Python 正则表达式按换行符或句点划分字符串

bash - 在 bash 中解析配置文件

variables - sed 增量号

.net - 为什么RegularExpressionValidator中的 "\d+{1,4}(?:[.,]\d{1,4})?"抛出异常: "Nested quantifier {"