正则表达式与awk交替

时间:2014-12-23 18:27:09

标签: regex awk

我在函数中有以下awk行。

match($0,/'(.*)'/,a)

但是我想这样做,以便它匹配'(.*)'"(.*)"。我尝试用不同的交替语法编写它,但没有用,例如:

match($0,/'(.*)'|"(.*)"/,a)

然而它不想工作。

只是想知道是否有人可以指出这里发生了什么。

2 个答案:

答案 0 :(得分:3)

你需要:

match($0,/\047([^\047]*)\047|"([^"]*)"/,a)

a使其特定于gawk。如果您将脚本存储在以awk -f script执行的文件中,则可以将\047更改为'

答案 1 :(得分:2)

如果它是一个awk脚本,请尝试这样做:

match($0, /['"](.*)['"]/, a)

如果没有,(命令行):

match($0, /[\042\047](.*)[\042\047]/, a)