Regex 在正则表达式中打印某些部分?

Regex 在正则表达式中打印某些部分?,regex,bash,Regex,Bash,例如,一个文件包含多个字符串,其中一些字符串如下所示: --EX“ABCDEFG” 我创建了以下正则表达式以查看行是否匹配: ^--EX\\\“*\”$ 我现在的问题是,我是否可以提取*的内容,以便只获取ABCDEFG? 正则表达式适用于此吗?在要获取的零件周围加上括号 ^--EX\ \"(.*)\"$ 然后,无论您的代码是什么,它都将是match 1,大多数regex实现都暗示match 0是完全匹配,match 1将是第一组括号,依此类推。将括号放在您想要得到的部分周围 ^--EX\ \"

例如,一个文件包含多个字符串,其中一些字符串如下所示:
--EX“ABCDEFG”

我创建了以下正则表达式以查看行是否匹配:
^--EX\\\“*\”$

我现在的问题是,我是否可以提取
*
的内容,以便只获取
ABCDEFG

正则表达式适用于此吗?

在要获取的零件周围加上括号

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

然后,无论您的代码是什么,它都将是match 1,大多数regex实现都暗示match 0是完全匹配,match 1将是第一组括号,依此类推。

将括号放在您想要得到的部分周围

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

然后,无论您的代码是什么,它都将是match 1,大多数regex实现都暗示match 0是完全匹配,match 1将是第一组括号,依此类推。

您可以通过sed获得它:

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

您可以通过sed获得:

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

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

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

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

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

如果使用单引号,可以避免一些转义:
的/^--EX“\(.*\)”$/\1/g'
如果使用单引号,可以避免一些转义:
的/^--EX“\(.\)”$/\1/g'