匹配666,13932600289,20080821073948,正确这个字符串,用(?<aid>.*?),(?<mp>.*?),(?<time>.*?),(?<msg>.*?)。为何匹配不到msg呢?

解决方案 »

  1.   

    因为你用了非贪婪匹配,用这个就可以了(?<aid>[^,]*),(?<mp>[^,]*),(?<time>[^,]*),(?<msg>.+)\b
    效率应该比你的高不少。
      

  2.   

    一共用时:2654毫秒(2.654秒) [100000次]★表达式1:(?<aid>[^,]*),(?<mp>[^,]*),(?<time>[^,]*),(?<msg>.+)\b
    执行时间:1112毫秒(1.112秒) 占总时间41.90%★表达式2:(?<aid>.*?),(?<mp>.*?),(?<time>.*?),(?<msg>.+)
    执行时间:1542毫秒(1.542秒) 占总时间58.10%
      

  3.   


    一共用时:2654毫秒(2.654秒) [100000次]★表达式1:(?<aid>[^,]*),(?<mp>[^,]*),(?<time>[^,]*),(?<msg>.+)\b
    执行时间:1112毫秒(1.112秒) 占总时间41.90%★表达式2:(?<aid>.*?),(?<mp>.*?),(?<time>.*?),(?<msg>.+)
    执行时间:1542毫秒(1.542秒) 占总时间58.10%
      

  4.   


    一共用时:27569毫秒(27.569秒) [1000000次]★表达式1:(?<aid>[^,]*),(?<mp>[^,]*),(?<time>[^,]*),(?<msg>.+)\b
    执行时间:11756毫秒(11.756秒) 占总时间42.64%★表达式2:(?<aid>.*?),(?<mp>.*?),(?<time>.*?),(?<msg>.+)
    执行时间:15813毫秒(15.813秒) 占总时间57.36%
      

  5.   

    晕。楼上的,那个看时间的是怎么做到的啊。是不是有工具可以看到!~可以发份给我么!一直没找到一个好点的验证正则的工具。[email protected]
    有的话,就发一份,谢谢了~
      

  6.   

    (?<aid>[0-9]*),(?<mp>[0-9]*),(?<time>[0-9]*),(?<msg>.+)\b
      

  7.   

    "666,13932600289,20080821073948,正确 ".Split(new char[] { ',' }, 4);
      

  8.   

    恩,好像有些情况还是不对,不过还是thx了