代码之家  ›  专栏  ›  技术社区  ›  Jeff

awk和WinGrep中的正则表达式

  •  4
  • Jeff  · 技术社区  · 17 年前

    所以我在寻找这样一种模式:

    size='0x0'

    size='0x[0-9a-fA-F]{4,}
    

    但同一个正则表达式在awk中不起作用-似乎是重复 {4,} 把事情搞砸了。WinGrep也一样-RegEx大师有什么想法吗?谢谢

    3 回复  |  直到 6 年前
        1
  •  5
  •   Dan Fego    17 年前

    正如在下一页中提到的,您需要一个特殊的命令行选项(--re interval)来解决这个问题,因为区间表达式({4,})不在标准中:

    http://kansai.anesth.or.jp/gijutu/awk/gawk/gawk_28.html

    所以最后,你会想要一些看起来像:

    awk --re-interval "/size='0x[0-9a-fA-F]{4,}'/" thefile
    

        2
  •  4
  •   Adam Alexander    17 年前

    我不知道有什么优雅的{4,}语法替代方案,但是如果它在您想要的环境中不起作用,您可以求助于这个丑陋的黑客:

    size='0x[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]+
    

    希望这有帮助!

        3
  •  0
  •   Keng    17 年前

    别忘了最后一个撇号。

    '