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

Grep

Ag

<!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上进行了测试!输出结果与我在命令行界面中使用ag时的输出一样。所以我的问题是,为什么这个简单的正则表达式的结果会根据所使用的工具而不同

发布于 2013-07-16 06:28:12
在这种情况下,您需要为grep使用扩展正则表达式。添加-E标志。在这种情况下,我得到的所有三个工具的输出几乎相同:



发布于 2013-07-21 11:36:11
祝贺你。你在ack中发现了一个bug。显然,ack对两个捕获组进行了着色,而不是对整个匹配字符串进行着色。
我已经在GitHub中为它创建了一个错误报告:https://github.com/petdance/ack2/issues/304
感谢您的报道,尽管这不是您的本意。:-)
https://stackoverflow.com/questions/17664821
复制相似问题