当前位置: 首页 > 面试题库 >

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

岳英锐
2023-03-14
问题内容

无论如何,您可以像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

问题答案:

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

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

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

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



 类似资料:
  • 本文向大家介绍shell脚本之正则表达式、grep、sed、awk,包括了shell脚本之正则表达式、grep、sed、awk的使用技巧和注意事项,需要的朋友参考一下 --正则-- 基础正则 ^word     ##搜索以word开头的 vi/vim中 ^ 一行的开头 word$     ##搜索以word结尾的 vi/vim中 $ 一行的结尾 ^$        ##表示空行 .        

  • 本文向大家介绍Shell正则表达式之grep、sed、awk实操笔记,包括了Shell正则表达式之grep、sed、awk实操笔记的使用技巧和注意事项,需要的朋友参考一下 最近一直在研究shell脚本这块,刚好闲下来整了下自己手头上比较好的资料中的一些范例,以下是我整理的鸟哥私房菜里面正则表达式里面比较基础的一些语法详解,适合新手查阅。 首先先复制一段范例: 设置语系为C grep 1.搜寻特定字

  • 我有以下模式的输入 我想用sed将所有逗号“”字符替换为制表符。约束条件是不替换文本字符串中的“”(即'中的逗号不应替换为制表符)。这样做的正则表达式是,(?!,_)。 但是下面的sed不起作用。我也尝试了所有转义排列。 有办法做到这一点吗?

  • 问题内容: 这就是我正在做的事(简化示例): 我试图把所有不以开头的行放在前面。这是错误: 怎么了? 问题答案: 据我所知,既没有前瞻性,也没有落后。切换到具有类似语法的更强大的语言,例如。

  • 问题内容: 我对bash / sed没什么问题。我需要能够在sed表达式中使用命令替换。我有两个大文本文件: 首先是logfile.txt, 有时*以 错误ID:0xdeadbeef的格式按ID显示错误消息(常见示例为0xdeadbeef)。 第二个error.txt具有成对存储的错误消息LONG_ERROR_DESCRIPTION,0xdeadbeef 我试图用sed和bash命令替换来完成任务

  • (?:x) (x) 这两个好像可以平价替换的吧。有什么特殊应用吗?