2

我想用(<\/?)+[a-z]+(>)不同的工具测试这个正则表达式,看看我会得到什么。实际上,实验的目的是测试每个实用程序如何将结果显示回控制台。基本上它会搜索下面的 html 文档,然后匹配所有的 html 标签。令我惊讶的是,我从grepackag得到的结果差异很大。grep甚至没有返回任何东西

确认

在此处输入图像描述

格雷普

在此处输入图像描述

在此处输入图像描述

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="content-type" content="text/html; charset=utf-8" />
        <title>Test</title>
    </head>
    <body>
        body and so
        df
        s;kl,
        <p>Hello code kit</p>
        <p>Thats pretty great</p>
        <p>Really neat!</p>
        <p>I wanna be a developer for life</p>
        <nav>
             breeee!
        </nav>
        I am in love 
        <p>Ummmmmm!</p>
        wtf
        okay buddy!
        <p>
            I took that shit out
        </p>
        <aside>
            eeem
        </aside>
        Sometimes u really get bored
    </body>
</html>

只是为了理智,我继续在rubular和 viola 上进行了测试!输出就像我在 CLI 中使用ag时一样。所以我的问题是为什么这个简单的正则表达式的结果会因使用的工具而异

在此处输入图像描述

4

2 回答 2

1

在这种情况下,您需要使用扩展的正则表达式grep来工作。添加-E标志。在这种情况下,我对所有三个工具的输出几乎相同:

确认

银

grep

于 2013-07-15T22:28:12.107 回答
0

恭喜。您在 ack 中发现了一个错误。显然 ack 正在着色两个捕获组而不是整个匹配字符串。

我在 GitHub 中为它创建了一个错误报告:https ://github.com/petdance/ack2/issues/304

感谢您报告此内容,尽管这不是您的意图。:-)

于 2013-07-21T03:36:11.367 回答