有个帖子
http://topic.csdn.net/u/20081013/16/fe228180-3530-4bab-9cc1-55fd6a1c93a8.html
这上面的五楼,有一句是这么说的
(?!) 因为?!后没有任何内容,所以试图匹配总是失败的那我的理解是不是
(?(Open)(?=)) (?(Open)(?<!)) (?(Open)(?<=))和(?(Open)(?!))在那里是不是有同样的效果?请大家在回答之前,先看一下上面那个地址的帖子先,谢谢大家

解决方案 »

  1.   

    (?(exp)yes|no) 把exp当作零宽正向先行断言,如果在这个位置能匹配,使用yes作为此组的表达式;否则使用no 
    (?(exp)yes) 同上,只是使用空表达式作为no (?!)的原型就是(?(exp)yes)
    空表达式可以匹配任何字符,!当然就是对任何匹配都失败。
      

  2.   

    (?!)的原型就是(?(exp)yes) 
    空表达式可以匹配任何字符,!当然就是对任何匹配都失败。这话还不理解,解释的还不够易懂,为什么(?!)的原型就是(?(exp)yes) ,从哪里看出来