又是个moodle源码的,看来E-learnning最近很流行啊~~~~~¦(/[^:\.\*\"]+/)(\d+)/ (\([0-9]+%\)\ </A\ >$) ¦
==========================================================把正则大概说一下吧,1.(/[^:\.\*\"]+/) : 不以 ":" , "." , "*" , " " " 开头的任意字符组合(至少一个),后面再匹配个"/"
  asf/ , sdf/ 这些可以
  "sdf/ , :sdf/ , .sdf/ , *eee/ 这些不行2.(\d+)/ :任意数字组合,后面匹配"/"3.(\([0-9]+%\)\ </A\ >$) : 左括号,然后0~9数字组合,百分号,右括号,</A>并且以">"结尾   (345%) </A> , (444%) </A> 可以大概就是这些意思了,没有亲自测试,可以参考着理解,希望有帮助

解决方案 »

  1.   

    这正是moodle中的源码,
    还有没有更详细分析的?
      

  2.   

    楼主还想要什么呢楼主说正则不太懂,我已经把正则解释过了,至于正则回调的函数,是moodle中的函数,里面有moodle自定义的各种函数,这个别人是解释不了的。
      

  3.   

    这其实是一个moodle插件,叫moss,是一个判断程序是否雷同的插件,
    上面那个回调函数以及它的调用语句其作用是将某个语句段替换掉,改成一个中文名字,在我的情况里,这个字符串替换于类似于“d:/moodledata/2/moddata/assignment/52/”这样的语句为“张三”。现在的问题是替换不彻底,替换后成了“d:\张三”,所以我怀疑是这个正则表达式有问题,如果是这样的话,我还想知道怎样写这个表达式,才能达到彻底替换。