AWK - 用子匹配替换
AWK - replace with sub match
如何使用awk
替换子匹配?
我试过了:
{
fss="FieldsFunc(s string, f bool)"
fss=gensub(/([( ])(.+?) .+?([,)])/,"\1\2\3","g",fss); print fss;
}
并期望输出为 FieldsFunc(s, f)
,但我得到了 FieldsFunc(s string, f)
。我做错了什么?谢谢。
g?awk
不支持懒惰。不贪心量词是 Perl 特有的。您可以将正则表达式更改为更具限制性的内容:
fss = gensub(/(\w+) +\w+([,)])/,"\1\2", "g", fss);
如何使用awk
替换子匹配?
我试过了:
{
fss="FieldsFunc(s string, f bool)"
fss=gensub(/([( ])(.+?) .+?([,)])/,"\1\2\3","g",fss); print fss;
}
并期望输出为 FieldsFunc(s, f)
,但我得到了 FieldsFunc(s string, f)
。我做错了什么?谢谢。
g?awk
不支持懒惰。不贪心量词是 Perl 特有的。您可以将正则表达式更改为更具限制性的内容:
fss = gensub(/(\w+) +\w+([,)])/,"\1\2", "g", fss);