2011-08-29 49 views
1

例如,文件中包含多个字符串,其中一些看起来像这样:
--EX "ABCDEFG"在正则表达式中打印某些部分?

我创建了下面的正则表达式,看看行匹配:
^--EX\ \".*\"$
我的问题是,现在,我可以采用某种提取.*的内容才能得到ABCDEFG? 正则表达式适合这个吗?

回答

2

将圆括号放在你想要的部分的周围。

^--EX\ \"(.*)\"$ 

然后在任何你的代码,这将是比赛1,正则表达式的大多数实现意味着匹配0是全场比赛,和比赛1将是第一组括号,等等。

1

您可以通过sed的得到它:

$ echo "--EX "ABCDEFG"" | sed 's/^--EX \(.*\)$/\1/' 
ABCDEFG 
1

在命令行中,您必须准确输入您的命令,如下所示:

sed -e "s/^--EX \"\(.*\)\"$/\\1/g" filename 
+1

如果使用单引号,你能避免你的一些逃逸的:''s/^ - EX“\(。* \)”$/\ 1/g'' –