【发布时间】:2010-11-10 02:43:12
【问题描述】:
当模式在一行中多次匹配时,如何对所有匹配组执行操作?
为了说明,我想搜索/Hello! (\d+)/并使用数字,例如,将它们打印出来或将它们相加,以便输入
abcHello! 200 300 Hello! Hello! 400z3
ads
Hello! 0
如果我决定将它们打印出来,我希望输出
200
400
0
【问题讨论】:
-
对于 Google 员工:请注意,
gawk,又名。 “GNU awk”,您实际上可以在一行(例如通过管道)中执行标题所说的(不是问题):| gawk -v RS='' '{ print gensub(/()()/, "\\1\\2", "g"); }':D 这支持多行(由于-v RS='')和匹配的子-组(由于使用 gawk 的gensub)!!!