【问题标题】:Using regex lookahead, egrep使用正则表达式前瞻,egrep
【发布时间】:2012-05-18 01:15:11
【问题描述】:

如果您的文件包含

apples are good
apple cider is also good

为什么egrep '(?=apples)app' file 接不到任何台词?

在 MAC 上使用 egrep 2.5.1

【问题讨论】:

    标签: regex grep regex-lookarounds


    【解决方案1】:

    扩展的正则表达式不具有积极的前瞻功能。 见the regex flavor comparison

    【讨论】:

    • 在mac OS上,你可以通过homebrew-dupes获取GNU grep(支持PCRE)
    • 上面的链接似乎不再有“正则表达式风格比较”。它现在基本上只是一个以 39.95 美元兜售“Regex Buddy”程序的网站。我认为可以在此处获得类似风味比较的内容:greenend.org.uk/rjk/tech/regexp.html,但很难找到这方面的信息。
    • 您可以在 Linux 上使用“-P”标志执行此操作:-P, --perl-regexp:将 PATTERN 解释为 Perl 正则表达式。这是高度实验性的, grep -P 可能会警告未实现的功能。 不同寻常的是,BSD 版本(Mac,Darwin,相对于 2010 年)在文档底部切线引用了“-P”但没有将其定义为可用标志。 Mac 用户可以下载更新版本的Grep at the Gnu site。令人惊讶的是,即使是 OS X 10.9 也捆绑了带有许多错误的旧版本。
    • macOS 上的 grep 不是旧的 GNU grep;它根本不是 GNU。所以它没有 GNU 扩展。
    猜你喜欢
    • 2015-09-13
    • 1970-01-01
    • 1970-01-01
    • 2011-10-14
    • 2010-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多