Surelysun 2009-11-11 03:03
浏览 174

请帮我分析下这个正则表达式



var selector = "div.class > span:not(:first-child) a[href]"
var chunker = /((?:\([^\)]+\)|\^\+\]|[^ ,\(\[]+)+)(\s*,\s*)?/g;
var parts = [];
// Reset the position of the chunker regexp (start from beginning)
chunker.lastIndex = 0;
// Collect the pieces
while ((m = chunker.exec(selector)) !== null) {
    parts.push(m[1]);
    // Stop if we've countered a comma
    if (m[2]) {
        extra = RegExp.rightContext;
        break;
    }
}

 其中,正则中的 \^\+\] 会如何匹配?

最后的结果很奇怪…


问题补充:
运行语句
m = chunker.exec(selector)
得到的匹配中,第三个为:span:not(:first-child)。

但看你提供的解释,并不符合要求。既不是一个()里面的,也不是不含有空格、逗号、左小括号、左中括号。
我认为的结果,应该分成2个,span:not和(:first-child)。前面和最后一个匹配,括号则和第一个匹配。那为什么正确结果却是span:not(:first-child)?
问题补充:
m = chunker.exec(selector)
应该是m = selector.match(chunker)
这样可获得所有匹配。我不理解第三个匹配的结果,再帮我分析下,万分感谢!
  • 写回答

3条回答 默认 最新

  • lissanwen 2009-11-11 16:02
    关注

    quote[/quote]

    评论

报告相同问题?

悬赏问题

  • ¥15 cgictest.cgi文件无法访问
  • ¥20 删除和修改功能无法调用
  • ¥15 kafka topic 所有分副本数修改
  • ¥15 小程序中fit格式等运动数据文件怎样实现可视化?(包含心率信息))
  • ¥15 如何利用mmdetection3d中的get_flops.py文件计算fcos3d方法的flops?
  • ¥40 串口调试助手打开串口后,keil5的代码就停止了
  • ¥15 电脑最近经常蓝屏,求大家看看哪的问题
  • ¥60 高价有偿求java辅导。工程量较大,价格你定,联系确定辅导后将采纳你的答案。希望能给出完整详细代码,并能解释回答我关于代码的疑问疑问,代码要求如下,联系我会发文档
  • ¥50 C++五子棋AI程序编写
  • ¥30 求安卓设备利用一个typeC接口,同时实现向pc一边投屏一边上传数据的解决方案。