我有一个URL http://social.msdn.microsoft.com/Forums/en-US/en-CN/winformssetup/thread/c81d3580-a212-43c3-a407-e257847488b9/
我想匹配http://social.msdn.microsoft.com/  所以一开始我这么写
https?://[\w.^/]*/ 结果发现它会匹配http://social.msdn.microsoft.com/Forums/ 让我很不解
我知道 https?://[\w.]*/  就可以匹配http://social.msdn.microsoft.com/    但是我现在很想知道为什么它会匹配成这个样子(http://social.msdn.microsoft.com/Forums/ )感谢来人关注

解决方案 »

  1.   

    string pattern = @"https?://[^/]*";
    否定符号要放在开头,要不然只能是当做普通的^来匹配
      

  2.   

    我也想到过  如果^不放在开始位置就只表示它本身的话 那
    https?://[\w.^/]*/ 应该会匹配http://social.msdn.microsoft.com/Forums/en-US/en-CN/winformssetup/thread/c81d3580-a212-43c3-a407-e257847488b9/ 才对呀
      

  3.   

    \w仅能匹配 字母、数字、下划线、汉字 那么综合起来呢就是加上后面的^ 和 /这两个是不会匹配减号的-的,又因为你表达式中是以/为结束,所以只能匹配到http://social.msdn.microsoft.com/Forums/