为什么[^ \ d \ w \ s,]匹配" leonardo,davinci"?

时间:2015-08-28 19:00:53

标签: regex grep

我无法理解为什么正则表达式:

{
   "/api/things/34?huh=wat": {
       "response": /* thing-esque json */
   },
   "/api/dogs": {
       "response": /* some error json */
   }
}

匹配字符串:

[^\d\s\w,]

这是我的测试:

"leonardo,davinci"

虽然这可以按预期工作:

$ echo "leonardo,davinci" | egrep '[^\d\w\s,]'
leonardo,davinci

非常感谢

1 个答案:

答案 0 :(得分:9)

这是因为<div id="cssimage"> <img src="http://placehold.it/200x100?text=%23cssimage" /> </div> <div id="htmlimage"> <img src="http://placehold.it/200x100?text=%23htmlimage" /> </div> <div class="htmlhover">html Test message</div> <div class="csshover">CSS 3 Test message</div>没有预定义的集egrep\d\w。因此,在他们面前放斜线只是字面上匹配:

  

<强> leonar d的 0 下,d的 avinci

\s
确实,不会匹配。

<小时/> 如果已安装,则可以使用echo "leonardo,davinci" | egrep '[^a-zA-Z0-9 ,]' 代替:

pcregrep